Nep*_*eph -2 c# unity-game-engine
今天我在Unity项目中遇到了一些有趣的C#代码:
MyScript ms = new MyScript(); //MyScript derives from MonoBehaviour
ms = null;
if(!ms) { Debug.Log("ms = "+(ms==null)); }
Run Code Online (Sandbox Code Playgroud)
它看起来似乎表现如下:
if(ms == null) { /*Do Stuff*/ }
Run Code Online (Sandbox Code Playgroud)
但它真的是一回事吗?我还没有找到任何关于此的文档.有没有理由不使用较短的版本或更喜欢一个?
不可以.您可以在Javascript中执行此操作,但C#不会像那样工作,除非myobject实际上是布尔值.
根据这个评论:
myobject ......来自MonoBehaviour.
以及MonoBehavior文档的摘录:
Operators bool Does the object exist? operator != Compares if two objects refer to a different object.
看起来你可以为你的变量做这个,因为它可以隐式转换为bool.但是对于C#来说通常都没有问题.