错误原因分析
首先,你要知道,在.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错误分析
大家有什么问题或技术上的想法可以在此与大家分享,也可以加入前端爱好者QQ群(141999928)一起学习进步:
【幸凡前端技术交流群】
如果您觉得本文的内容对您的学习有所帮助,捐赠与共勉,支付宝(左)或微信(右)