我正在尝试将我的ActionScript知识应用于C#,我一直想知道是否可以制作这种返回语句:
return myObject ||= new Object();
当然我可以使用更长的版本,如:
if (!myObject)
myObject = new Object();
return myObject;
它工作正常,但我只是希望能够混淆我的代码并缩短它。
我认为既然它都是ECMAScript,它应该可以工作,但事实并非如此。任何人都可以指出是否可以使用逻辑运算符来模仿if-else而不是通常的if-then-else语句?
.NET版本为3.5(Unity3d引擎)
答案 0 :(得分:7)
是的,C#中有一个coalesce运算符几乎可以完成这个。
return myObject ?? new Object();
编辑:这不会更改变量myObject
。如果你想这样做,你可以简单地写
return myObject = myObject ?? new Object();
因为C#中的赋值也是一个返回已赋值的表达式。
答案 1 :(得分:2)
C#中的等价物是
return myObject ?? new Object();
所以似乎有些运营商略有不同。