我在C#中有一个类,我定义了operator ==。在测试以下
时,我当前抛出一个对象的方法是null异常MyClass a = new MyClass(); if(a==null)....
这很令人沮丧,因为在运算符的定义中,我不能问这两个参数是否为null,因为它只会进入无限递归。
在定义==运算符时,如何测试以查看任一参数是否为空。
答案 0 :(得分:2)
if (object.ReferenceEquals(objA, null)) { ... }
另一种选择是将objA
投射到object
:
if ((object)objA == null) { ... }
您可能需要参考这些guidelines。
答案 1 :(得分:1)
使用Object.ReferenceEquals(objA, null)
。