返回时的逻辑操作

时间:2014-02-21 08:32:28

标签: c# .net unity3d asp.net-3.5

我正在尝试将我的ActionScript知识应用于C#,我一直想知道是否可以制作这种返回语句:

return myObject ||= new Object();

当然我可以使用更长的版本,如:

if (!myObject)
myObject = new Object();
return myObject;

它工作正常,但我只是希望能够混淆我的代码并缩短它。

我认为既然它都是ECMAScript,它应该可以工作,但事实并非如此。任何人都可以指出是否可以使用逻辑运算符来模仿if-else而不是通常的if-then-else语句?

.NET版本为3.5(Unity3d引擎)

2 个答案:

答案 0 :(得分:7)

是的,C#中有一个coalesce运算符几乎可以完成这个。

 return myObject ?? new Object();

编辑:这不会更改变量myObject。如果你想这样做,你可以简单地写

 return myObject = myObject ?? new Object();

因为C#中的赋值也是一个返回已赋值的表达式。

答案 1 :(得分:2)

C#中的等价物是

return myObject ?? new Object();

所以似乎有些运营商略有不同。