📅  最后修改于: 2023-12-03 15:29:14.090000             🧑  作者: Mango
在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
。
总之,??=
运算符使得我们更加容易地对变量进行默认值的赋值,极大地提高了我们的代码的可读性和简洁性。