在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)