Odpowiedz

11

Różnica polega na tym, że druga stacja może być użyta do zwrócenia wartości na podstawie warunku.

Na przykład, jeśli masz następujące oświadczenie:

if (SomeCondition()) 
{ 
    text = "Yes"; 
} 
else 
{ 
    text = "No"; 
} 

Korzystanie operator potrójny, będzie napisać:

text = SomeCondition() ? "Yes" : "No"; 

Uwaga jak pierwszy przykład wykonuje instrukcję oparte na stanie, podczas gdy drugi zwraca wartość w oparciu o warunek.

3

Tak & Tak.

Jedynym zyskiem jest zapisanie wierszy kodu.

+8

Nie jedyny. Drugi wariant może być użyty do wiązania odniesienia do dwóch różnych obiektów w zależności od warunku, pierwszego nie można do tego użyć. – sharptooth

+0

Dobrze, zapomniałem o tym. – Faruz

4

Cóż ... W pierwszym przypadku możesz mieć dowolną ilość lub typ kodu (wyrażenie vs instrukcja) w miejsce code1 i code2. W tym ostatnim przypadku muszą to być prawidłowe wyrażenia.

1

Tak, są to dwie różne formy syntaktyczne i będą działać identycznie, a najbardziej podobny kod będzie emitowany przez kompilator.

Powiązane problemy