Условный оператор ?:
, также называемый тернарным, вычисляет логическое выражение и в зависимости от полученного значения true
или false
возвращает результат одного из двух соответствующих выражений, как показано в следующем примере.
string GetWeatherDisplay(double tempInCelsius) => tempInCelsius < 20.0 ? "Cold." : "Perfect!";
Console.WriteLine(GetWeatherDisplay(15)); // output: Cold.
Console.WriteLine(GetWeatherDisplay(27)); // output: Perfect!
Как показано в предыдущем примере, синтаксис условного оператора выглядит следующим образом.
condition ? consequent : alternative
Выражение condition
должно принимать значение true
или false
. Если condition
принимает значение true, вычисляется выражение consequent
, а результат становится результатом операции. Если condition
принимает значение false
, вычисляется выражение alternative
, а результат становится результатом операции. Вычисляется только выражение consequent
или alternative
.
Условный оператор имеет правую ассоциативность, то есть выражение формы.
a ? b : c ? d : e
вычисляется как
a ? b : (c ? d : e)
Вы можете использовать следующий мнемонический прием, чтобы запомнить, как оценивается условный оператор:
is this condition true ? yes : no
Документация