我一直在寻找stackoverflow,但还没有看到ansswer。注意:我确实在C ++中看到了一些好的响应,但没有看到C#。
如下所示检查null if (reader == null)
是否有任何好处,或者导致它为null的问题是否导致if (reader == null)
无法访问的异常(reader == null为true)?
try
{
var reader = new PhotoReader();
if (reader == null)
{
throw new InvalidOperationException("PhotoReader could not be created.");
}
}
catch (Exception ex)
{
// let user know failed object creation, etc.
<...>
}
答案 0 :(得分:5)
不,由于c#中的构造函数调用,你无法获得null
。
构造函数本身可能会抛出异常,但无论如何它都会破坏您的执行流程。
答案 1 :(得分:1)
通过分配类的构造函数的结果来实例化reader
这一事实意味着它永远不会为null,因此不需要检查。