如果为null,创建新实例的简写?

Che*_*tah 6 c#

在Javascript中,我可以这样做:

var myVar = returnNull() || new MyObject();

在C#中,我当前正在这样做:

var myVar = returnObjectOrNull();

if (myVar == null) myVar = new MyObject();
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中缩短它?

And*_*air 23

使用??运算符

foo ?? new Foo();
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下

var myVar = returnObjectOrNull() ?? new MyObject();
Run Code Online (Sandbox Code Playgroud)

?? ?? operator被称为null-coalescing运算符,用于为可空值类型或引用类型定义默认值.如果操作数不为null,则返回左侧操作数; 否则返回正确的操作数.


小智 5

使用空合并运算符

var myVar = returnObjectOrNull();

myVar = myVar ?? new MyObject();
Run Code Online (Sandbox Code Playgroud)