2013-04-13 49 views
0

我想行添加到具有公共領域的公共類的實例對象引用的公共類/公共領域,正在一個錯誤:未將對象引用設置到對象VB.NET行數據添加到類型List(Of T)已不設置到對象

Public Class EmailRecipient 
     EmailAddress As String = "" 
     FullName As String = "" 
    End Class 

    Public Class EmailDetails 
     Public FromEmail As String = "" 
     Public ToEmails As List(Of Emails) = nothing 
    End Class 

    Public Sub SetEmailDetails 
     'Populate EmailRecipient Class 
     Dim er As New EmailRecipient 
     er.EmailAddress = "[email protected]" 
     er.FullName = "Rodney Dangerfield" 

     'Populate EmailDetails Class 
     Dim ed As New EmailDetails 
     ed.FromEmail = "[email protected]" 'This works fine 
     ed.ToEmails.Add(er)     'Here error happens 
    End Sub 

我猜我需要創建EmailRecipient類的實例之前,我可以將項目添加到它的一個實例。

不知道如何做到這一點與公共領域的公共類?

這是一個艱苦的一天。今天早上我起牀,穿上了一件襯衫,一顆鈕釦掉了下來。我拿起公文包,手柄脫落了。我害怕去洗手間。

感謝您的幫助:-)

回答

1

I'm guessing I need to create an instance of the EmailRecipient class

您已經有了EmailRecipient類的一個實例。這是你的變量。你在這裏實際上有兩個錯誤。首先,您將ToEmails設置爲Nothing:

Public ToEmails As List(Of Emails) = nothing

這意味着您的ToEmails變量是Null引用。它還沒有實際的對象。

第二個問題是,你不應該得到那個錯誤時拋出,因爲這不應該編譯。您可以定義ToEmails的名單(共電子郵件),但嘗試添加類型的對象「EmailRecepient」給它。這應該是一個編譯器錯誤。如果不是,則需要重新啓用Option Strict或Option Infer。

所以,你真正需要的是一個列表(中EmailRecipient)的實例類型。修復代碼的壞行是這樣的:

Public ToEmails As New List(Of EmailRecipient) 
+0

謝謝 - 聲明公共變量列表作爲新的,它不設置任何解決問題:-) – Charlez

相關問題