参见英文答案 >
Best and fastest way to check if an object is null 6
检查对象上空引用的最有效的方法是什么?我看到各种代码样本有不同的检查方法,以下是最有效的或被认为是最佳实践的最佳实践?
检查对象上空引用的最有效的方法是什么?我看到各种代码样本有不同的检查方法,以下是最有效的或被认为是最佳实践的最佳实践?
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代码不总是等于!(item == null),但当然结果应该是相等的.
> item == null代码不等于null == item,它类似于typeof(item).Equals(object)和object.Equals(typeof(item))方法调用.
> Object.Equals(item,null)比较引用类型的引用和值类型的按位,但在反射器中它等于(item == null)|| ((item!= null&& null!= null)&&item.Equals(null)).
> item!= null代码不总是等于!(item == null),但当然结果应该是相等的.
> item == null代码不等于null == item,它类似于typeof(item).Equals(object)和object.Equals(typeof(item))方法调用.
它不同,因为你可以覆盖!=,==,等于.
使用已知实现的方法,null == item更好的代码,但更难阅读.
Object.ReferenceEquals(null,item)可能会更快或更快.
附:也使用string.IsNullOrEmpty(item)