📜  ??= 在 c# 中的含义(1)

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

C#中的 ??= 含义

在C#中,??=是一种复合赋值运算符,用于判断一个变量是否为null。若为null,则给该变量赋予一个默认值;若不为null,则不做操作。这是一个非常便利的语法糖,可以让我们更加简洁地编写代码。

以下是这个赋值运算符的语法:

variable ??= defaultValue;

具体来说,如果 variable 不为null,则不执行任何操作,返回 variable 的实际值。如果 variable 为null,则将 defaultValue 赋给 variable 并返回该值。

下面是一些具体的用例:

string name = null;
string defaultName = "Guest";
name ??= defaultName;
Console.WriteLine(name); // 输出 "Guest"

在这个示例中,如果 name 为null,则将默认值 "Guest" 赋值给 name。最后, Console.WriteLine() 显示出 "Guest"。

int? quantity = null;
int defaultQuantity = 1;
quantity ??= defaultQuantity;
Console.WriteLine(quantity); // 输出 1

在这个示例中, int? 是一个可空类型,如果 quantity 为null,则将默认值1赋值给 quantity。最后, Console.WriteLine() 显示出 "1"。

此外,这个运算符也可以和其他赋值运算符一起使用:

int? a = null;
int b = 10;
a ??= b + 5;
Console.WriteLine(a); // 输出 15

在这个示例中,如果 a 为null,则将 b + 5 的值赋值给 a

总之,??= 运算符使得我们更加容易地对变量进行默认值的赋值,极大地提高了我们的代码的可读性和简洁性。