当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中检测空引用?

如何解决《如何在C#中检测空引用?》经验,为你挑选了3个好方法。

如何在C#中确定对象引用是否为空?如果它为null,则抛出异常?

即如果我传入了类引用,我不知道它是否为null.



1> Robert Pauls..:

对null进行测试永远不会*抛出异常

void DoSomething( MyClass value )
{
    if( value != null )
    {
        value.Method();
    }
}

*绝不应该永远.正如@Ilya Ryzhenkov指出的那样,MyClass的!=运算符的错误实现可能会引发异常.幸运的是,Greg Beech有一篇关于在.NET中实现对象相等性的博文.



2> Joel Coehoor..:

Robert说的是什么,但是对于那个特例,我喜欢用这样的保护子句表达它,而不是将整个方法体嵌套在if块中:

void DoSomething( MyClass value )
{
    if ( value == null ) return;
    // I might throw an ArgumentNullException here, instead

    value.Method();
}



3> Ilya Ryzhenk..:

注意,在MyClass上定义运算符!=可能会导致检查结果不同,以及稍后会发生NullReferenceException.要绝对确定,请使用object.ReferenceEquals(value,null)

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有