Я получил экзамен и увидел такой вопрос;C# множественная последовательность? условный оператор
var b = (1==2) ? (1==1) ? (2==1) ? "A" : "B" : "C" : "D";
Что такое b и как оно работает в таком состоянии?
Спасибо.
Я получил экзамен и увидел такой вопрос;C# множественная последовательность? условный оператор
var b = (1==2) ? (1==1) ? (2==1) ? "A" : "B" : "C" : "D";
Что такое b и как оно работает в таком состоянии?
Спасибо.
A ternary operator действует как например:
Заявление
variable = condition ? value1 : value2
эквивалентно
if (condition)
{
variable = value1;
}
else
{
variable = value2;
}
Так что в вашем случае,
var b = (1==2) ? (1==1) ? (2==1) ? "A" : "B" : "C" : "D";
просто несколько вложенных тройные операторов, и это то же самое, что и
var b;
if (1==2)
{
if (1==1)
{
if (2==1)
{
b = "A";
}
else
{
b = "B";
}
}
else
{
b = "C";
}
}
else
{
b = "D";
}
Хорошо, я получил его, большое вам спасибо. –
'b' сразу выходит из области видимости в вашем примере, так что это не совсем то же самое :) – learningcs
Достаточно справедливо, я изменил пример, чтобы b оставался в области видимости после условных блоков. – rageandqq
Вы имеете в виду '(1 == 2)? (1 == 1)? (2 == 1)? «A»: «B»: «C»: «D» '? – Pluto
да, я имею в виду это. спасибо за предупреждение. Я рассматриваю вопрос –