C#运算符与语法糖
C#运算符与语法糖
一、null运算符
1.空条件运算符 ?.
如果左边不是 null,就访问右边;如果左边是 null,直接返回 null,不执行右边。
实例1.1:
?.
Animal aa = null;
// aa?.Eat("骨头");
// ↑ 可以简化为
if (aa != null)
{
aa.Eat("骨头");
}
2.空合并运算符 ??
如果左边不是 null,就返回左边;如果左边是 null,就返回右边(默认值)
实例1.2:
??
Animal aa = null;
Animal cc = new();
Animal animal = null;
// animal = aa ?? cc;
// ↑ 可以简化为
if (aa == null)
{
animal = aa;
}
else
{
animal = cc;
}
3.空合并赋值运算符 ??=
如果左边是 null,就把右边的值赋给左边;如果左边已经有值,什么都不做
实例1.3:
??=
Animal aa = new();
Animal bb = null;
// bb ??= aa;
// ↑ 可以简化为
if (bb == null)
{
bb = aa;
}
// bb = bb ?? aa;