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;

C#运算符与语法糖
https://chooseqiu.com/posts/32bc884a/
作者
Chooseqiu
许可协议