Ответ 1
Это оператор нулевой коалесценции. Для метода выше состояний x присваивается значение y, если y не равно нулю, и в этом случае ему присваивается значение z.
Возможные дубликаты:
?? Null Coalescing Operator → Что означает слияние? Что означают два знака вопроса в С#?
Я не мог найти этот вопрос, задаваемый здесь, поэтому я решил, что попрошу об этом. Что делает двойной вопросительный знак на С#?
Пример:
x = y ?? z;
Это оператор нулевой коалесценции. Для метода выше состояний x присваивается значение y, если y не равно нулю, и в этом случае ему присваивается значение z.
Используйте y, если не null, в противном случае используйте z
От Wikipedia:
Это оператор нуль-коалесценции и сокращение для этого:
x = (y != null ? y : z);
Если y равно null, будет установлено значение z.
Если значение y равно null, то присваивается значение z.
Например:
x = Person.Name ?? "No Name";
Если имя равно null, будет иметь значение "Нет имени"
Как утверждали другие, это нулевой коалесцирующий оператор.
Информация MSDN об этом:
.Net framework 2.0 поддерживает значения null для типов Nullable.
здесь, в этом случае, говорится x равно y, если оно имеет некоторое значение (то есть не null), либо равно z