未将对象引用设置到对象的实例原因分析及解决方法
2014-11-13 13:14:39  By: shinyuu

System.NullReferenceException: 未将对象引用设置到对象的实例异常是在C#程序里面、有时候也会抛: Object reference not set to an instance of an object、一般情况是使用NULL的对象超成的、一般来说只要打上断点调试一下就可以发现是那个变量或对象为NULL、下面我把抛出这个异常最常见的情况说明一下、出现“未将对象引用设置到对象的实例”错误、一般是下面的原因

1、ViewState对象为Null

2、DateSet为空

3、sql语句或Datebase的原因导致DataReader空

4、声明字符串变量时未赋空值就应用变量

5、未用new初始化对象

6、Session对象为空

7、对控件赋文本值时、值不存在

8、使用Request.QueryString()时、所获取的对象不存在、或在值为空时未赋初始值

9、使用FindControl时、控件不存在却没有做预处理

10、重复定义造成未将对象引用设置到对象的实例错误


解决方法一

重复定义造成未将对象引用设置到对象的实例错误 一般在C#中造成“未将对象引用设置到对象的实例”错误都是控件名称与codebehind里面的没有对应、对于初学编程的人、而在编码中重复定义也会造成这种问题的产生

事例代码

namespaceweste{ 
	public class study:System.Web.UI.Page{ 
		publicstring[]c;
		
		privatevoidPage_Load(objectsender,System.EventArgse){ 
			aaa();
			bbb();
		}
		
		privatevoidaaa(){ 
			string[] c = new string[3];
			//c=new string[3];
			c[0]="我们";
			c[1]="西部";
			c[2]="学习"; 
		}
		
		privatevoidbbb(){ 
			Response.Write(c[0] c[1] c[2]);
		} 
		
		#regionWeb窗体设计器生成的代码 override
		protectedvoidOnInit(EventArgse){ 
			InitializeComponent();
			base.OnInit(e);
		}
		
		privatevoidInitializeComponent(){
			this.Load  = newSystem.EventHandler(this.Page_Load);
		}
		#endregion
	}
}

运行后会我们发现、会有以下错误产生: 异常详细信息:System.NullReferenceException:未将对象引用设置到对象的实例

privatevoid bbb(){
	Response.Write(c[0] c[1] c[2]);
}

很多初学者都会有疑问:我已经定义了变量publicstring[]c、而且也进行了实例化string[]c=newstring[3]、但是为什么在调用数组c的时候还会报“未将对象引用设置到对象的实例”的错误呢?

问题出在string[]c=newstring[3]这里、在前面已经将数组c定义后、在函数aaa()中再次将数组定义、造成前面定义的数组不能实例化、只需要将string[]c=newstring[3]修改成c=newstring[3]即可


解决方法二

空对象引用导致错误

1、控件不存在

2、执行权限不够、加ASPNET和EVETRYONE所有权限

2.1、ViewState对象为Unll

2.2、DateSet空

3、sql语句或Datebase的原因导致DataReader空

4、声明字符串变量时未赋空值就应用变量

5、未用new初始化对象

6、Session对象为空


通过以上的检查一般情况都会解决这个问题的、大家在写代码的时候多注意一下就可以规避这个问题

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+