📅  最后修改于: 2023-12-03 15:11:27.621000             🧑  作者: Mango
在 C# 中,空合并运算符 (??
) 用于为 null
值设置默认值。它可以用于任何可空类型或引用类型。
int? x = null;
int y = x ?? 0; // y=0
在上面的示例中,x
是一个可空整数类型,它的值为 null
。在 y = x ?? 0;
语句中,?? 运算符检查 x
是否为 null
。由于它的值为 null
,所以运算符返回默认值 0
,将其赋给 y
。
下面是一个使用 ??
运算符的实际示例:
string name = null;
string displayName = name ?? "Guest";
在上面的示例中,如果 name
为 null
,则 displayName
将设置为 "Guest"。如果 name
不为 null
,则 displayName
将设置为 name
的当前值。
在 C# 8 中,我们可以使用 ??=
运算符来设置变量的默认值。它将使用默认值来初始化变量,仅当变量的当前值为 null
时才起作用。例如:
string name = null;
name ??= "Guest";
在上面的示例中,如果 name
的值为 null
,则 name
将被设置为 "Guest"。
需要注意的是,当 ??
运算符用于引用类型时,其操作数应为null,否则它将抛出异常。例如:
string name = "John";
string displayName = name ?? throw new Exception("Name is null.");
在上面的示例中,如果 name
不为 null
,则 displayName
将设置为当前值。如果 name
为 null
,则 ??
运算符抛出异常,并提示 "Name is null."。
总之,??
运算符是一个简单而强大的功能,可以使您的代码更加简洁和易于阅读。它可用于编写程序的各个方面,包括 JSON 解析、表单输入和代码配置等。因此,熟练掌握它是一项不可或缺的技能。