0

我有一個應用程序處理文件。它需要一次處理一個字符的文件。我正在使用ArrayList來存儲數據。下面是造成問題的代碼:VB.NET中無法說明的空引用異常

Dim fileData As ArrayList = Nothing 
Dim temp As Char = Nothing 
While Not EOF(open_file_number) 
    Input(open_file_number, temp) 
    fileData.Add(temp) 
End While 

的被拋出空引用異常的代碼行是我(嘗試)的temp值分配給在fileData ArrayList的新元素。任何人都知道這裏發生了什麼?謝謝

+2

*全部*是可以解釋的。 ;) – Mehrdad 2011-03-04 04:09:18

+0

我不認爲'Dim fileData as New ArrayList = Nothing' is valid ...你是在聲明它爲'New'還是將它設置爲'Nothing'?這將有所作爲 – mellamokb 2011-03-04 04:14:44

+0

@Mehrdad那麼,有沒有人有這樣的解釋?因爲我肯定不會。 – 2011-03-04 04:15:33

回答

1

那麼,fileData設置爲Nothing,所以當你打電話.Add它當然會觸發NullReferenceException。嘗試將它設置爲一個新的實例:

Dim fileData As New ArrayList 
+0

好吧,我現在看到它* *把手伸進額頭*'我認爲空引用是臨時的 – 2011-03-04 04:26:02

+0

@Nate:傳遞參數時不會發生空引用。爲參數傳遞'Nothing'完全有效。空引用異常只會在嘗試訪問屬性或調用空對象的方法時發生。 – mellamokb 2011-03-04 04:29:43

0

你需要做的是更改以下行:

Dim temp As Char = Nothing 

要:

Dim temp as Char = '' 

的差異。我已經經歷了與字符串變量相同的事情,並得到同樣的問題。試圖分配一個值,以「S」時

Dim s as String = nothing 

導致NULL指針。

Dim s as string = String.empty 

不。