2015-02-18 2 views
-1

Буду признателен за логическое объяснение этой строки кода. Что он достигнет?Понимание оператора нулевой коалесценции

x = y ?? ""; 

, где находится x объекта типа и y является переменной строкой.

Обратите внимание, что программа составлена.

+1

Вы прочитали [документацию] (https://msdn.microsoft.com/en-us/library/ms173224.aspx)? Что ты не понял? _ "Он возвращает левый операнд, если операнд не является нулевым, иначе он возвращает правый операнд" _ –

+0

Вам следует выполнить поиск или попробовать что-то, прежде чем спрашивать здесь. Вот подробная документация по msdn. https://msdn.microsoft.com/en-us/library/ms173224.aspx –

+2

Это не тернарный оператор, и я не уверен, почему вы так думаете. '?:', как в 'x? y: z', часто называют тернарным оператором, потому что он имеет три операнда. Вот что значит троичный. Это не означает, что любой другой оператор с вопросительным знаком также тернарен. – hvd

ответ

4

он назначит пустую строку х, если у равно нулю

это называется null-coalescing operator.

, например, если у вас есть

a = b ?? c ?? d ?? e ?? f; 

, то он будет искать b значения. если он не является нулевым, то a=b если b является null, он будет проверять значение c. если он не равен нулю, то a=c. , если c равно null, то он будет проверять на ... (продолжение)

2

Это означает длинное заявление.

if(y != null) 
{ 
    x = y; 
} 
else 
{ 
    x = ""; 
} 
Смежные вопросы