在构造函数中检查Null

jsm*_*ith 10 c# null exception-handling

我真的试图找出易于调试的可重用代码的最佳实践.我在开发人员中遇到了一个我不太了解的常见做法.

public MyConstructor(Object myObject)
{
    if (myObject == null)
        throw new ArgumentNullException("myObject is null.");
    _myObject = myObject;
}
Run Code Online (Sandbox Code Playgroud)

几乎没有必要做这个检查.但我认为这是因为我不完全明白做这项检查的好处是什么.似乎无论如何都会抛出一个null引用异常?我可能错了,真的很想听听它的一些想法.

谢谢.

Jef*_*nal 20

对编译器来说,null是一个合法的构造函数参数.

您的类可能能够处理null值myObject.但是如果它不能 - 如果你的类在myObjectnull 时会中断- 那么检查构造函数会让你快速失败.

  • +1哇,这是一篇优秀的论文.谢谢你的链接. (3认同)