代码之家  ›  专栏  ›  技术社区  ›  Neph

是“如果”!myobject)”与“if(myobject==null)”相同?

  •  -2
  • Neph  · 技术社区  · 6 年前

    MyScript ms = new MyScript(); //MyScript derives from MonoBehaviour
    ms = null;
    if(!ms) { Debug.Log("ms = "+(ms==null)); }
    

    它的行为似乎与:

    if(ms == null) { /*Do Stuff*/ }
    

    但这真的是一回事吗?我还没有找到任何关于这个的文件。有没有理由不使用较短的版本,或者更喜欢其中一个版本?

    1 回复  |  直到 6 年前
        1
  •  6
  •   Joel Coehoorn    6 年前

    不,你可以用Javascript来实现,但是C#不能像这样工作除非 myobject


    基于此评论:

    我的对象。。。源于单一行为。

    这个节选自 MonoBehavior docs

    Operators
    
    bool           Does the object exist?  
    operator !=    Compares if two objects refer to a different object.  
    

    看起来可以对变量执行此操作,因为它可以隐式地转换为 bool