什么是NullReferenceException
試圖訪問或取消引用空對象引用時引發的異常。
繼承鏈
-
ObjectExceptionSystemExceptionNullReferenceException
說明
嘗試訪問值為空的類型上的成員時,將引發NullReferenceException異常。NullReferenceException異常通常反映開發人員錯誤,可能引發的情況如下:
- 忘記了實例化引用類型
- 在初始化數組之前,忘記了維度。
- 從方法獲取null返回值,然后對返回的類型調用方法。
- 使用的是表達式(例如,你要將方法或屬性的列表鏈接在一起)來檢索值,但盡管你要檢查值是否為
null
,運行時仍會引發 NullReferenceException 異常。 出現這種情況的原因是表達式中的中間值之一返回null
。 因此,永遠不會計算null
的測試。 - 正在枚舉包含引用類型的數組元素,嘗試處理其中一個元素會引發 NullReferenceException 異常。
null
傳遞的方法引發 NullReferenceException 異常。 某些方法會驗證傳遞給它們的參數。 如果null
,則該方法將引發 System.ArgumentNullException 異常。 否則,會引發 NullReferenceException 異常。
以下 Microsoft 中間語言(MSIL)指令引發 NullReferenceException: callvirt
、cpblk
、cpobj
、initblk
、ldelem.<type>
、ldelema
、ldfld
、ldflda
、ldind.<type>
、ldlen
、stelem.<type>
、stfld
、stind.<type>
、throw
和 unbox
。
HRESULT
NullReferenceException 使用值為0x80004003 的 HRESULT COR_E_NULLREFERENCE。