通过参数传递的 Null 检查值类型
Null check value types passed via parameters
考虑到值类型总是默认初始化并且永远不会为 null,是否值得对通过参数传递给方法的值类型进行 null 检查?
例如是否值得执行以下检查
public void Method(Guid x)
{
if (x == null)
throw new ArgumentNullException();
...
}
虽然条件在技术上是 有效 (因为运算符重载规则和可空类型),但它只能计算为 false
。这就是为什么在某些情况下,您会收到编译器警告,让您知道唯一可能的结果是 false
.
因此,除非您的问题还有更多内容,否则归根结底就是询问这段代码是否值得:
public void Method(Guid x)
{
if (false)
throw new ArgumentNullException();
...
}
答案应该很明显了。
考虑到值类型总是默认初始化并且永远不会为 null,是否值得对通过参数传递给方法的值类型进行 null 检查?
例如是否值得执行以下检查
public void Method(Guid x)
{
if (x == null)
throw new ArgumentNullException();
...
}
虽然条件在技术上是 有效 (因为运算符重载规则和可空类型),但它只能计算为 false
。这就是为什么在某些情况下,您会收到编译器警告,让您知道唯一可能的结果是 false
.
因此,除非您的问题还有更多内容,否则归根结底就是询问这段代码是否值得:
public void Method(Guid x)
{
if (false)
throw new ArgumentNullException();
...
}
答案应该很明显了。