的目的是什么??C#中的运算符

本文关键字:运算符 是什么 | 更新日期: 2023-09-27 18:20:41

空合并运算符??的主要用途是什么,如下所示:

double? num1 = 3.14157;
double num2 = num1 ?? 5.34;      
Console.WriteLine("Value of num2: {0}", num2);

的目的是什么??C#中的运算符

"??运算符称为null合并运算符,用于为可为null的值类型或引用类型定义默认值。如果操作数不为null,则返回左侧操作数;否则返回右侧操作数。"

来源:MSDN

Null联合运算符可以让您更简洁地编写代码:您不用使用条件语句或条件表达式,而是在一行中编写等效的表达式。

将您的表达式与此进行比较

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;