通过参数传递的空检查值类型

时间:2016-07-29 15:16:33

标签: c# .net value-type

考虑到默认情况下值类型总是初始化并且永远不为null,是否值得通过参数检查传入方法的值类型?

E.g。值得进行以下检查

public void Method(Guid x)
{
  if (x == null)
   throw new ArgumentNullException();
...
}

1 个答案:

答案 0 :(得分:1)

虽然条件在技术上是有效(由于运算符重载规则和可空类型),但它只能评估为false。这就是为什么在某些情况下,您会收到编译器警告,告诉您唯一可能的结果是false

所以,除非你的问题还有更多,否则问及这个代码是否值得:

public void Method(Guid x)
{
  if (false)
   throw new ArgumentNullException();
...
}

答案应该非常明显。