Biorąc pod uwagę czas oceny, są następujące dwa równoważne?jeśli/else vs Ternary Operator
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
Albo są po prostu składniowo inaczej?
Biorąc pod uwagę czas oceny, są następujące dwa równoważne?jeśli/else vs Ternary Operator
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
Albo są po prostu składniowo inaczej?
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.
Tak & Tak.
Jedynym zyskiem jest zapisanie wierszy kodu.
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.
Tak, są to dwie różne formy syntaktyczne i będą działać identycznie, a najbardziej podobny kod będzie emitowany przez kompilator.
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
Dobrze, zapomniałem o tym. – Faruz