Каковы основные использование Null коалесцирующего оператор ??
, как показано здесь:Какова цель? оператора в C#?
double? num1 = 3.14157;
double num2 = num1 ?? 5.34;
Console.WriteLine("Value of num2: {0}", num2);
Каковы основные использование Null коалесцирующего оператор ??
, как показано здесь:Какова цель? оператора в C#?
double? num1 = 3.14157;
double num2 = num1 ?? 5.34;
Console.WriteLine("Value of num2: {0}", num2);
«Оператор
??
называется оператором нуль-коалесцирующим и используются для определения значения по умолчанию для обнуляемых типов значений или ссылок type. Он возвращает левый операнд, если операнд не равен null, иначе он возвращает правый операнд. "
Источник: MSDN
Null Оператор COALESCE позволяет писать код гораздо более лаконично: вместо того, чтобы использовать условный оператор или условное выражение, вы пишете эквивалентное выражение в одной строке.
Сравните свое выражение в этом
if (num1.HasValue) {
num2 = num1.Value;
} else {
num2 = 5.34;
}
это
num2 = num1.HasValue ? (double)num1.Value : 5.34;
или это:
num2 = num1 != null ? (double)num1 : 5.34;
Ваше выражение гораздо легче читать, чем любой из вышеперечисленных.
Кроме того, этот оператор позволяет избежать введения временной переменной или даже сохранить вам вызов функции в ситуациях, когда num1
не в переменной, но происходит от функции вместо:
double num2 = getNum1() ?? 5.34;
против
int? tmpNum1 = getNum1();
num2 = num1.HasValue ? (double)num1.Value : 5.34;
Я обычно использую его для создания объектов в первый раз, когда они запрашиваются:
public ICommand OkCmd
{
get { return _okCmd ?? (_okCmd = new DelegateCommand(Ok)); }
}
private DelegateCommand _okCmd;
Чтобы разрешить замену значения по умолчанию, когда нулевая переменная имеет значение null или неизвестна. –
Многого не имеет смысла. '' 'не имеет смысла использовать на' double'. – Joey
Можете ли вы объявить две переменные двух разных типов с тем же именем? 'int num1' и' double num1'? –