📜  空合并运算符 c# (1)

📅  最后修改于: 2023-12-03 15:11:27.621000             🧑  作者: Mango

空合并运算符 (??) - C#

在 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";

在上面的示例中,如果 namenull,则 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 将设置为当前值。如果 namenull,则 ?? 运算符抛出异常,并提示 "Name is null."。

总之,?? 运算符是一个简单而强大的功能,可以使您的代码更加简洁和易于阅读。它可用于编写程序的各个方面,包括 JSON 解析、表单输入和代码配置等。因此,熟练掌握它是一项不可或缺的技能。