如果对象的实例为空,是否可以修改在检查时返回的布尔值?

时间:2011-07-27 20:16:07

标签: c# null operator-keyword

我想知道是否可以修改在检查时返回的布尔值,如果对象的实例为空,例如(我知道这是错误的和不完整的,只是想给你一个参考):

主要

SuperObject obj = new SuperObject();

if (obj == null) Console.WriteLine("It is null lol!");

超对象:

public bool destroyed = false;

public static bool operator ==(SuperObject A, object B)
{
if (A != null && B == null && destroyed == true)
      return true;
}

因此,如果检查表达式(A == null)并且A为非null但是A.destroyed为TRUE,则它将返回(A == null)为TRUE。

基本上我希望(A == null)在以下情况下为TRUE: A实际上是空的OR A.destroyed = null;其他比较的默认值。

1 个答案:

答案 0 :(得分:4)

我建议改为:

public static bool IsDestroyed(SuperObject a) {
    return (a == null || a.destroyed);
}

对新开发者来说,你的方式会非常混乱。