c# - 如果对象的实例为空,是否可以修改检查时返回的 bool 值?

标签 c# null operator-keyword

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

主要:

SuperObject obj = new SuperObject();

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

super 对象:

public bool destroyed = false;

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

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

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

最佳答案

我建议改为这样做:

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

你的方式会让新开发者感到困惑。

关于c# - 如果对象的实例为空,是否可以修改检查时返回的 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6850686/

相关文章:

c++ - 运算符 << 重载

c# - 如何在 WPF 中使用 MVVM 将 Windows 窗体控件绑定(bind)到 "Grid"面板

c# 从指定点开始暴力破解

JAVA 警告 - 取消引用可能的空指针。我如何正确摆脱这个警告?

objective-c - 在 dealloc 中使用 self.property = nil 有什么问题吗?

java - Dagger2 子注入(inject)项为空

c# - Unity IoC InjectionFactory不遵守DependencyOverride

c# - 如何将相同的依赖关系绑定(bind)到 Ninject 中的多个依赖项?

list - Scala的 '::'运算符,它是如何工作的?

binary - ANTLR:区分一元和二进制运算符的问题(例如减号)