Diskuze: Optional parameter ve funkci
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Myslíš takto?
FunkceX(int id, String name = "")
{
if(name != "")
FunkceY(name);
elsel
FunkceY();
}
Jo přes If by to šlo taky, ale myslel jsem, že to půjde udělat i nějak jinak. Že třeba jde ten parametr nastavit nějakým způsobem, abych tam ten if dávat nemusel.
Taky mě jiný způsob nenapadá, nicméně bych to udělal asi na úrovni FunkceY, ale to už záleží jaký máš vnitřní smysl. mě to tam ale sedí víc
FunkceX(int id, string name = "")
{
FunkceY(name)
}
FunkceY(string name)
{
if (name != "") //pracovat s name
}
Ještě topic nechám pár hodin nevyřešený, kdyby se náhodou našel
někdo koho by napadlo ještě jiné řešení.
Nejspíš ale žádné jiné nebude, ani když jsem hledal na netu, tak jsem
jiné nenašel.
Každopádně prozatím díky za odpovědi.
Pokud je FunkceY tvoje, tak bych to řešil takto:
FunkceX(int id, string name = null)
{
FunkceY(name);
}
FunkceY(string name = null)
{
if (name != null)
{
//...
}
}
Stejně ve FunkciY nakonec musíš testovat, zda je string prázdný, abysi se rozhodl jak to zpracovat, pak to klidně volej s výchozím/prázdným parametrem.
Pokud máš FunkciY přetíženou, pak se již ve FunkciX musiš rozhodnout, kterou FunkciY zavolat, např.
(name == "") ? FunkceY() : Funkce(name);
Zobrazeno 7 zpráv z 7.