<分区>
检查对象的空引用的最有效方法是什么?我见过各种代码示例,它们具有不同的检查方式,以下是最有效的还是被认为是最佳实践?
Object.ReferenceEquals(item, null)
item == null
item != null
Object.Equals(item, null)
谢谢
标签 c# performance
<分区>
检查对象的空引用的最有效方法是什么?我见过各种代码示例,它们具有不同的检查方式,以下是最有效的还是被认为是最佳实践?
Object.ReferenceEquals(item, null)
item == null
item != null
Object.Equals(item, null)
谢谢
最佳答案
Object.ReferenceEquals(item, null)
比较引用和等于 item == null
。Object.Equals(item, null)
比较引用类型的引用和值类型的按位比较,但在反射器中它等于 (item == null) || ((item != null && null != null) && item.Equals(null))
。item != null
code 并不总是等于 !(item == null)
,但结果当然应该相等。item == null
code 不等于 null == item
,它类似于 typeof(item).Equals(object)
和object.Equals(typeof(item))
方法调用。它的不同之处在于您可以覆盖 !=
、==
、Equals
。
使用具有已知实现的方法,null == item
更易于编码,但更难阅读。
Object.ReferenceEquals(null, item)
可能会更快,也可能不会。
附言也使用 string.IsNullOrEmpty(item)
关于c# - 空引用检查的良好做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850053/