Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.

Diskuze: Parametr z proměnné

C# .NET .NET (C# a Visual Basic) Parametr z proměnné American English version English version

Avatar
beats.omni
Člen
Avatar
beats.omni:

Ahoj, chci vytvořit Local nebo Domain uživatele. Proto používám třídu:

PrincipalContext context = new PrincipalContext(ContextType.Domain)

Parametr ContextType chci nastavit jako Machine (lokální uživatel) nebo Domain (doménový).

Můžu tento parametr uložit do proměnné, abych ho mohl posílat přímo do funkce, nebo musím použít if-else, např.:

string userType;

if(userType == "Machine")
**{
PrincipalContext context = new PrincipalContext(ContextType.Machine)
}**
else if (userType == "Domain")
**{
PrincipalContext context = new PrincipalContext(ContextType.Domain)
}**
else
   něco dalšího....
 
Odpovědět 7.4.2015 16:05
Avatar
Odpovídá na beats.omni
Petr Čech (czubehead):

Nevím, jestli tě chápu správně. Jestli se ptáš, jestli se dá zavolat příkaz ze stringu, tak to nejde. Ale tak si udělej přetížení konstruktoru pro vstupní string a tohle dělej až v logice konstruktoru.

Editováno 7.4.2015 17:06
Nahoru Odpovědět 7.4.2015 17:05
Why so serious? -Joker
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na beats.omni
Jan Vargovský:

Enum můžeš normálně uložit. Dokonce, jestli jsou ty názvy totožné, jen prostě je máš v enumu, aby se ti s tím pak dále lépe pracovalo, tak můžeš použít Enum.Parse metodu.

Takže ve výsledku bys tam měl

PrincipalContext context = new PrincipalContext((ContextType)Enum.Parse(typeof(ContextType), userType))

Případně, jestli nejsou totožne, tak bych takhle rozhodně nevětvil instancování, ale udělal na to metodu, která ti zparsuje string na tvůj enum (v případě, že by se lišili názvy) a pak vytvořil instanci.

Editováno 7.4.2015 17:13
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 7.4.2015 17:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.