Буду признателен за логическое объяснение этой строки кода. Что он достигнет?Понимание оператора нулевой коалесценции
x = y ?? "";
, где находится x
объекта типа и y
является переменной строкой.
Обратите внимание, что программа составлена.
Буду признателен за логическое объяснение этой строки кода. Что он достигнет?Понимание оператора нулевой коалесценции
x = y ?? "";
, где находится x
объекта типа и y
является переменной строкой.
Обратите внимание, что программа составлена.
он назначит пустую строку х, если у равно нулю
это называется null-coalescing operator.
, например, если у вас есть
a = b ?? c ?? d ?? e ?? f;
, то он будет искать b
значения. если он не является нулевым, то a=b
если b
является null, он будет проверять значение c
. если он не равен нулю, то a=c
. , если c
равно null, то он будет проверять на ... (продолжение)
Это означает длинное заявление.
if(y != null)
{
x = y;
}
else
{
x = "";
}
Вы прочитали [документацию] (https://msdn.microsoft.com/en-us/library/ms173224.aspx)? Что ты не понял? _ "Он возвращает левый операнд, если операнд не является нулевым, иначе он возвращает правый операнд" _ –
Вам следует выполнить поиск или попробовать что-то, прежде чем спрашивать здесь. Вот подробная документация по msdn. https://msdn.microsoft.com/en-us/library/ms173224.aspx –
Это не тернарный оператор, и я не уверен, почему вы так думаете. '?:', как в 'x? y: z', часто называют тернарным оператором, потому что он имеет три операнда. Вот что значит троичный. Это не означает, что любой другой оператор с вопросительным знаком также тернарен. – hvd