Nefunkční ternární operátor   zodpovězená otázka

C#

Zdravím, mám jednoduchou otázku. Proč nelze takto použít ternární operátor?

File.Exists(@"Slozka/soubor.xml") ? Existuje() : Neexistuje();

Přijde mi to validní, vždyť metoda File.Exists vrací obyčejný bool, co mi uniká?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co na tom nefunguje?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Po vyhodnocení jsem se snažil spustit pouze jednu, nebo druhou metodu, což evidentně není možné.

Tohle nefunguje, protože po vyhodnocení volám metody.

File.Exists(@"Slozka/soubor.xml") ? Existuje() : Neexistuje();

Tohle funguje. Jedná se tedy o běžnou vlastnost ternárních operátorů, že musí vracet nějakou hodnotu?

string test = File.Exists(@"Slozka/soubor.xml") ? "Existuje" : "Neexistuje";
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jedná - ternární operátor není jen podmínka. Pokud chcete jen volat metody, tak na to použijte normální podmínku. To snad není takový problém.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nikde jsem nepsal, že by to byl takový problém :-), jenom mě to zarazilo.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Asi jste to nepochopil správně. Ty dva argumenty vždy musí být nějaká hodnota, takže to musí být buď konkrétní hodnota, nebo metoda vracející hodnotu. K samotnému volání metod to není určeno.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback