我已经习惯于检查方法的参数是否为空(然后继续抛出异常),以至于我几乎不再考虑它了。如果参数是引用类型,它就在那里:
if(arg == null)
throw new ArgumentNullException(nameof(arg));
但是如果我要立即使用 arg 怎么办?我应该检查吗?我的意思是,如果我不这样做,无论如何,环境都会为我抛出(NullReferenceException)。
例如:
public int DoStuff(object o)
{
return o.GetHashCode();
}
我可以轻松编写添加空检查:
public int DoStuff(object o)
{
if(o == null)
throw new ArgumentNullException(nameof(o));
return o.GetHashCode();
}
但是在这两种情况下都会抛出异常(在几乎完全相同的行中,用于调试目的)。唯一的区别是类型。
问题:在具有单个引用类型参数的公共方法上,如果我要立即使用该参数,是否还应该检查它?null