捕鱼王2手机扫码
IT資訊
當前位置:草根網 > IT資訊 >  科技暢談

什么是NullReferenceException,如何解決?

2020-03-26 18:36:48 木莊網絡博客 編輯:草根 瀏覽數:34草根網

我有一些代碼,執行時會拋出NullReferenceException,說:你調用的對象是空的。 這是什么意思,我該怎么做才能解決此錯誤? 原因是什么? 您正在嘗試使用null(或Nothi...

我有一些代碼,執行時會拋出NullReferenceException,說:你調用的對象是空的。

這是什么意思,我該怎么做才能解決此錯誤?

原因是什么

您正在嘗試使用null(或Nothing在VB.NET中)。

這意味著您要么將其設置為null,要么根本不將其設置為任何東西。 

像其他任何東西一樣,null被傳遍。

如果null 在方法“ A”中,則可能是方法“ B”將a傳遞null 給方法“ A”。 

null 可以具有不同的含義: 

1、未初始化的對象變量,因此沒有指向任何對象。在這種情況下,如果訪問此類對象的屬性或方法,則會導致NullReferenceException。 

2、開發人員有意使用null表示沒有可用的有意義的值。請注意,C#具有變量的可為空的數據類型的概念(例如數據庫表可以具有可為空的字段)-您可以分配null給它們以指示其中沒有存儲任何值,例如int? a = null;,問號指示允許在其中存儲null。

可變的a。您可以使用if (a.HasValue) {...}或通過進行檢查if (a==null) {...}。像a本示例一樣,可空變量允許通過a.Value顯式訪問值,或者像通過正常訪問變量一樣a。 注意的是通過訪問它a.Value拋出InvalidOperationException,而不是NullReferenceException如果aISnull-您應該事先進行檢查,即,如果您有另一個on-nullable變量,int b;則應該進行like if (a.HasValue) { b = a.Value; }或更短的賦值if (a != null) { b = a; }。 

本文的其余部分將詳細討論并顯示許多程序員經常犯的錯誤,這些錯誤可能導致錯誤NullReferenceException。

進一步來說

該runtime扔NullReferenceException 總是意味著同樣的事情:你要使用的引用,引用未初始化(或它一次初始化,但不再初始化)。 

這意味著引用為null,并且您無法通過null引用訪問成員(例如方法)。

最簡單的情況:

string foo = null;
foo.ToUpper();

這將NullReferenceException在第二行拋出,因為您無法ToUpper()在string指向的引用上調用實例方法null。

分享到:

版權與免責聲明:

凡未注明"稿件來源"的內容均為轉載稿,本網轉載出于傳遞更多信息的目的;如轉載稿涉及版權問題,請作者聯系我們,同時對于用戶評論等信息,本網并不意味著贊同其觀點或證實其內容的真實性;


本文地址:http://www.ouvnr.club/news/2020/03/26/62351488.html

轉載本站原創文章請注明來源:草根網

行業聚焦

外星人m15/17游戲本2020版上架:i5+GTX 1650Ti,10999元

IT之家5月14日消息 外星人m15/17游戲本2020版本現已上架戴爾官網,配置最低的m15(i5+GTX 1650Ti)售價10999元,配置最高...[詳細]

谷歌:將于6月3日發布Android11 Beta版

谷歌官方今天發布消息稱,6月3日將在線上Android 11 Beta版。歷代Android大版本的Beta版一般都會在Google I/O大會上正式發布,不過...[詳細]

騰訊發布第一季度財報:營收1080.65億元,同比增長26%

騰訊昨日發布了第一季度財報,財報顯示,騰訊第一季度總營收1080.65億元,同比增長26%。期內盈利為294.03億元,同比增長6%,撇除若干一次性及非現金項目...[詳細]

“干翻”其他越野車:馬斯克稱特斯拉Cybertruck將采用全新懸掛

IT之家4月18日消息 據外媒electrek報道,特斯拉于去年11月正式推出Cybertruck,其擁有多種獨特的設計,包括防彈車體,防彈玻璃和創新...[詳細]

99 元、149 元,一加 8/Pro 彩?砂巖/藝術保護殼發布:細膩質感

IT之家4月16日消息 4月16日晚間,一加舉行一加8系列新品發布會,一加8/8 Pro 正式發布,一加8 Pro搭載2K+120Hz 超高幀瞳孔屏,...[詳細]

科技趨勢

更多

Zoom爆安全漏洞 CEO袁征在直播中道歉

 

4月9日早間消息,在周三的YouTube直播中,Zoom首席執行官袁征就最近影響Zoom應用的一系列安全漏洞向用戶致歉。...[詳細]

蘋果聘多位云計算“技術大牛”,不想再依賴AWS谷歌?

 

5月12日消息,據國外媒體報道,過去幾個月蘋果招募了數位云計算領域技術頂級人才。這一舉動在業內引起轟動,而且可能表明,蘋...[詳細]

蘋果高管:iPadOS 光標設計靈感來自 Apple TV

 

IT之家5月6日消息 蘋果軟件工程負責人克雷格·費德里希(Craig Federighi)最近接受了TechC...[詳細]

Windows 8 之父曬新桌面 PC :是蘋果 iPad Pro

 

IT之家5月26日消息 前Windows負責人Steven Sinofsky近期在Twitter上曬出了自己的...[詳細]

馬斯克談電動皮卡“翻車”事件:發布會差點沒法進行,但吸引了眼球

 

北京時間4月27日消息,特斯拉公司CEO埃隆·馬斯克(Elon Musk)認為,電動皮卡Cybertruck發布會上的現...[詳細]

一周排行每月關注
捕鱼王2手机扫码 359508569869599985384466178677364213822383441871094782823625345091956964749622541514890592686452494 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();