C# · 12月 30, 2021

c# – 什么是空参考检查的好习惯?

参见英文答案 > Best and fastest way to check if an object is null 6
检查对象上空引用的最有效的方法是什么?我看到各种代码样本有不同的检查方法,以下是最有效的或被认为是最佳实践的最佳实践? Object.ReferenceEquals(item,null)item == nullitem != nullObject.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))方法调用.

它不同,因为你可以覆盖!=,==,等于.
使用已知实现的方法,null == item更好的代码,但更难阅读.
Object.ReferenceEquals(null,item)可能会更快或更快.

附:也使用string.IsNullOrEmpty(item)