C# 未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例
出現(xiàn)“未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例” 錯(cuò)誤,一般是下面的原因:
1、ViewState 對(duì)象為Null。
2、DateSet 為空。
3、sql語(yǔ)句或Datebase的原因?qū)е翫ataReader空。
4、聲明字符串變量時(shí)未賦空值就應(yīng)用變量。
5、未用new初始化對(duì)象。
6、Session對(duì)象為空。
7、對(duì)控件賦文本值時(shí),值不存在
8、使用Request.QueryString()時(shí),所獲取的對(duì)象不存在,或在值為空時(shí)未賦初始值
9、使用FindControl時(shí),控件不存在卻沒(méi)有做預(yù)處理
10、重復(fù)定義造成未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤
很多時(shí)候在運(yùn)行程序時(shí),會(huì)出現(xiàn)“未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例”這樣的提示信息,主要是在代碼中重復(fù)定義了造成的,只要將其中一個(gè)刪除就可以了。
第一種:重復(fù)定義造成未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤
一般在C#中造成“未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例”錯(cuò)誤都是控件名稱與codebehind里面的沒(méi)有對(duì)應(yīng),對(duì)于初學(xué)編程的人,而在編碼中重復(fù)定義也會(huì)造成這種問(wèn)題的產(chǎn)生。
以下是一個(gè)例子:
public string[] c;
private void Page_Load(object sender, System.EventArgs e){
aaa();
bbb();
}
private void aaa(){
string[] c=new string[3];
//c=new string[3];
c[0]="我們";
c[1]="西部";
c[2]="學(xué)習(xí)";
}
private void bbb(){
Response.Write(c[0]+c[1]+c[2]);
}運(yùn)行后會(huì)我們發(fā)現(xiàn),會(huì)有以下錯(cuò)誤產(chǎn)生:
異常詳細(xì)信息: System.NullReferenceException: 未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。
源錯(cuò)誤:
行 33: private void bbb()
行 34: {
行 35: Response.Write(c[0]+c[1]+c[2]);
行 36: }
行 37:
很多初學(xué)者都會(huì)有疑問(wèn):我已經(jīng)定義了變量 public string[] c,而且也進(jìn)行了實(shí)例化 string[] c=new string[3],但是為什么在調(diào)用數(shù)組c的時(shí)候還會(huì)報(bào)“未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例”的錯(cuò)誤呢?
問(wèn)題出在string[] c=new string[3]這里,在前面已經(jīng)將數(shù)組c定義后,在函數(shù)aaa()中再次將數(shù)組定義,造成前面定義的數(shù)組不能實(shí)例化。只需要將 string[] c=new string[3]修改成 c=new string[3] 即可。
第二種:空對(duì)象引用導(dǎo)致錯(cuò)誤
1??丶淮嬖凇?br />2。執(zhí)行權(quán)限不夠。加ASPNET和EVETRYONE所有權(quán)限。
1、ViewState 對(duì)象為Unll。
2、DateSet 空。
3、sql語(yǔ)句或Datebase的原因?qū)е翫ataReader空。
4、聲明字符串變量時(shí)未賦空值就應(yīng)用變量。
5、未用new初始化對(duì)象。
6、Session對(duì)象為空。
補(bǔ)充
C#中報(bào): 未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例這個(gè)錯(cuò)誤一般都是對(duì)象為null產(chǎn)生的,下面幾個(gè)簡(jiǎn)單的例子:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//string str1 = "";
//str1 = str1.TrimEnd(','); //不會(huì)報(bào)錯(cuò)
//string str2 = null;
//str2 = str2.TrimEnd(',');//報(bào)錯(cuò):未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例.
List<StarInfo> list = null;
//if (list.Count > 0 && list != null)
//{
// //邏輯與“&&”
// //報(bào)錯(cuò):未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例.
//}
//if (list != null && list.Count > 0)
//{
// //邏輯與“&&”
// //不會(huì)報(bào)錯(cuò),if()中的條件語(yǔ)句按先后順序去執(zhí)行判斷的,在邏輯與“&&”時(shí):如果第一為flase,后面的判斷條件都不會(huì)被執(zhí)行了,以此類推。
// //如果第一個(gè)為true繼續(xù)執(zhí)行下一個(gè)判斷條件。
// //注意:我是已if (list != null && list.Count > 0)來(lái)解釋說(shuō)明的。你們要根據(jù)自己寫的條件去推理。
//}
//if (list.Count > 0 || list != null)
//{
// //邏輯或“||”
// //報(bào)錯(cuò):未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例.
//}
//if (list != null || list.Count > 0)
//{
// //邏輯或“||”
// //報(bào)錯(cuò):未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例.
// //if()中的條件語(yǔ)句按先后順序去判斷的,在邏輯或“||”時(shí):如果第一為flase,后面的判斷條件會(huì)繼續(xù)被執(zhí)行,以此類推。
// //如果第一個(gè)為true后面的判斷條件都不會(huì)執(zhí)行了。
// //注意:我是已if(list != null || list.Count > 0)來(lái)解釋說(shuō)明的。你們要根據(jù)自己寫的條件去推理。
//}
}
}火車頭采集軟件啟動(dòng)任務(wù)運(yùn)行時(shí),提示:未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例
正在初始化配置,請(qǐng)稍等...
啟動(dòng)任務(wù)時(shí)出錯(cuò):未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。Boolean A0AF549FC79BEB974A2EC34D087596DC6(Boolean, Boolean, Boolean)
解決辦法: 采集規(guī)則復(fù)制一份 黏貼使用即可。
補(bǔ)充:火車頭中也可以退出保存當(dāng)前規(guī)則,然后重新打開(kāi),檢查對(duì)方網(wǎng)站是否進(jìn)行來(lái)源判斷。
相關(guān)文章
c# 服務(wù)器上傳木馬監(jiān)控代碼(包含可疑文件)
c# 監(jiān)控服務(wù)器上傳木馬(包含可疑文件)2010-05-05
c# 代碼調(diào)試技巧和如何遠(yuǎn)程調(diào)試
這篇文章主要介紹了c# 代碼調(diào)試技巧和如何遠(yuǎn)程調(diào)試,幫助大家更好的理解和使用c#編程語(yǔ)言,感興趣的朋友可以了解下2020-11-11
jQuery uploadify在谷歌和火狐瀏覽器上傳失敗的解決方案
jquery.uploadify插件是一個(gè)基于jquery來(lái)實(shí)現(xiàn)上傳的,這個(gè)插件很好用,每一次向后臺(tái)發(fā)送數(shù)據(jù)流請(qǐng)求時(shí),ie會(huì)自動(dòng)把本地cookie存儲(chǔ)捆綁在一起發(fā)送給服務(wù)器。但firefox、chrome不會(huì)這樣做,他們會(huì)認(rèn)為這樣不安全,下面介紹下jQuery uploadify上傳失敗的解決方案2015-08-08
C# 實(shí)現(xiàn)簡(jiǎn)易的串口監(jiān)視上位機(jī)功能附源碼下載
這篇文章主要介紹了C# 實(shí)現(xiàn)簡(jiǎn)易的串口監(jiān)視上位機(jī)功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
C#實(shí)現(xiàn)中文錄音文件轉(zhuǎn)為文本文字
這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)把中文錄音文件(.mp3 .wav)轉(zhuǎn)為文本文字內(nèi)容,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考下2024-12-12
使用C#給PDF文檔添加注釋的實(shí)現(xiàn)代碼
本文將實(shí)例講述C#中如何使用免費(fèi)組件給PDF文檔添加文本注釋,包括自由文本注釋。自由文本注釋能允許我們自定義它的風(fēng)格和外觀,非常具有實(shí)用價(jià)值2017-01-01
Unity的IPreprocessBuildWithReport實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的IPreprocessBuildWithReport實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05

