Obj 是 null vs object.ReferenceEquals(Obj, null) [重复]

Posted

技术标签:

【中文标题】Obj 是 null vs object.ReferenceEquals(Obj, null) [重复]【英文标题】:Obj is null vs object.ReferenceEquals(Obj, null) [duplicate] 【发布时间】:2019-10-07 17:40:12 【问题描述】:

有什么区别

if (Obj is null) Console.WriteLine("Value is null");

if (object.ReferenceEquals(Obj, null)) Console.WriteLine("Value is null");

我正在尝试覆盖 == 运算符,因此无法使用 Obj == null

【问题讨论】:

由于 object.ReferenceEquals() 内部是 == 检查 (ReferenceEquals),那么:What is the difference between "x is null" and "x == null"? 可能重复 【参考方案1】:

ReferenceEquals(obj, null)(obj is null) 做同样的事情,但后者仅作为 C# 7.0 及更高版本语法的一部分提供。

【讨论】:

我不知道谁在投票,但 IIRC,这是完全正确的! github.com/dotnet/docs/issues/6856

以上是关于Obj 是 null vs object.ReferenceEquals(Obj, null) [重复]的主要内容,如果未能解决你的问题,请参考以下文章

何时使用 [self.obj message] vs [obj message] [重复]

NX二次开发-UF_OBJ_cycle_by_name遍历名字

关于obj.currentStyle.propertywindow.getComputedStyle(obj,null).propertyobj.style.property的理解

vs 使用git管理bin obj 去除版本控制

如何更好地重构可以在 java 中返回 null 的方法链?

vs编译obj给delphi用 遇到api解决方法