什么是NullReferenceException,如何解决?


我有一些代码,执行时会抛出NullReferenceException,说:你调用的对象是空的。

这是什么意思,我该怎么做才能解决此错误?

原因是什么

您正在尝试使用null(或Nothing在VB.NET中)。

这意味着您要么将其设置为null,要么根本不将其设置为任何东西。 

像其他任何东西一样,null被传遍。

如果null 在方法“ A”中,则可能是方法“ B”将a传递null 给方法“ A”。 

null 可以具有不同的含义: 

1、未初始化的对象变量,因此没有指向任何对象。在这种情况下,如果访问此类对象的属性或方法,则会导致NullReferenceException。 

2、开发人员有意使用null表示没有可用的有意义的值。请注意,C#具有变量的可为空的数据类型的概念(例如数据库表可以具有可为空的字段)-您可以分配null给它们以指示其中没有存储任何值,例如int? a = null;,问号指示允许在其中存储null。

可变的a。您可以使用if (a.HasValue) {...}或通过进行检查if (a==null) {...}。像a本示例一样,可空变量允许通过a.Value显式访问值,或者像通过正常访问变量一样a。 注意的是通过访问它a.Value抛出InvalidOperationException,而不是NullReferenceException如果aISnull-您应该事先进行检查,即,如果您有另一个on-nullable变量,int b;则应该进行like if (a.HasValue) { b = a.Value; }或更短的赋值if (a != null) { b = a; }。 

本文的其余部分将详细讨论并显示许多程序员经常犯的错误,这些错误可能导致错误NullReferenceException。

阅读剩余部分

相关阅读 >>

什么是NullReferenceException,如何解决?

更多相关阅读请进入《NullReferenceException》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...