// 可空类型修饰符
int i = null; //编译报错,引用类型能用空引用来表示一个不存在的值,但是值类型不能
int i?; //编译不报错,表示可控的类型
// 空合并运算符
// 当 a 不为空时返回 a,为 null 时返回 b
var c = a ?? b;
// null 检查运算符
// 常规操作
var c = null;
if (a != null)
{
var b= a.Getb();
if (b!= null)
{
c= b.Getc;
}
}
// ?.操作
var c = a?.Getb()?.Getc();
// 空合并赋值运算符
i ??= 17 // 左侧操作数的求值结果为 null 时,才将其右侧操作数的值赋值给左操作数