定义运算符并测试null

时间:2011-07-01 19:24:15

标签: c#

我在C#中有一个类,我定义了operator ==。在测试以下

时,我当前抛出一个对象的方法是null异常
MyClass a = new MyClass(); if(a==null)....

这很令人沮丧,因为在运算符的定义中,我不能问这两个参数是否为null,因为它只会进入无限递归。

在定义==运算符时,如何测试以查看任一参数是否为空。

2 个答案:

答案 0 :(得分:2)

使用object.ReferenceEquals

if (object.ReferenceEquals(objA, null)) { ... }

另一种选择是将objA投射到object

if ((object)objA == null) { ... }

您可能需要参考这些guidelines

答案 1 :(得分:1)

使用Object.ReferenceEquals(objA, null)