C#------新特性之??、?、??= 使用
public static void Main() { List<int>? numbers = null; int? a = null; Console.WriteLine((numbers is null)); //true // 如果numbers为空,则初始化numbers,同时添加一个5到numbers列表中 (numbers ??= new List<int>()).Add(5); Console.WriteLine(string.Join(" ", numbers)); // output: 5 Console.WriteLine((numbers is null)); // false Console.WriteLine((a is null)); // true Console.WriteLine((a ?? 3)); // 3,若a不为空则返回a的值,否则返回3;此处a为空 // 如果a为空,则赋值0;同时将a添加到numbers列表中 numbers.Add(a ??= 0); Console.WriteLine((a is null)); // false Console.WriteLine(string.Join(" ", numbers)); // output: 5 0 Console.WriteLine(a); // output: 0 }
public string Name { get => name; set => name = value ?? throw new ArgumentNullException(nameof(value), "Name cannot be null"); //若Name为空,将抛出异常 }
if (variable is null)
{
    variable = expression;
}
和variable ??= expression; 是等效的
操作符??运算:
如果左操作数的值不为 null,则 null 合并运算符 ?? 返回该值;否则,它会计算右操作数并返回其结果。
如果左操作数的计算结果为非 null,则 ?? 运算符不会计算其右操作数。
操作符??=运算:
 仅当左操作数的计算结果为 null 时,Null 合并赋值运算符 ??= 才会将其右操作数的值赋值给其左操作数。 如果左操作数的计算结果为非 null,则 ??= 运算符不会计算其右操作数。
------------------------------------
承接
**视觉检测软件开发及调试
**工业软件开发
**上位机软件开发
wechat:luoran2024
qq:565934058
email:taoyuansu@qq.com
海量教育资源及影视资源下载
微信公众号:EFun科技
------------------------------------
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号