【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、查看代碼中是否存在未初始化的變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM