【C#】错误“System.NullReferenceException:未将对象引用设置到对象的实例“解析

错误原因分析

  首先,你要知道,在.net里面所有操作的变量都是对象。
  一般的标示符,如int,string,char等等,最后都会转换为System命名空间下面的类名(如Int32,String,Char等等),当然类实例化的就更不用说了。对象就必然存在若干的属性和方法。你要操作一个对象,也必然是操作它的属性或者方法。
  “未将对象引用设置到对象的实例”,也就是说你要调用的对象实例里面不存你要操作的属性或者方法,而在确定了你的对象里面有你要操作的属性或者方法,但是仍然报错,那很可能是你操作的对象变成null了。因为null实际上也是一个对象(Nullable类型),所以它不会提示你“你操作的对象为空”这类的信息,而是对象实例中不存在你要操作的属性或者方法,也就是“未将对象引用设置到对象的实例”。

这里写图片描述

错误原因锦集

1、ViewState对象为Null。
2、DataSet为空。
3、SQL语句或DataBase的原因导致DataReader为空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new实例化对象。
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、使用FindControl时,控件不存在却没有做预处理。
10、重复定义造成未将对象引用设置到对象的实例错误。
11、控件名称在codebehind里面没有对应。
12、设置的变量为空值或没有取到值,一般在传递参数时出错。也会在使用DataGridView或DataList等数据控件时出现。
13、对象所在的命名空间没有引用。
14、程序出现异常,导致实例化失败,对象为 Null。

解决方案

1、使用Try……Catch……Finally捕捉错误,或者直接使用response.write()输出所取的变量值。
2、查看代码中是否存在未初始化的变量。


参考文章:百度文库NullReferenceException错误分析

阅读更多

扫码向博主提问

琚建飞

非学,无以致疑;非问,无以广识
去开通我的Chat快问
换一批

没有更多推荐了,返回首页