0

我正在尝试将行添加到具有公共字段的公共类中并且出现错误:对象引用未设置为对象的实例

    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 = "rodney@norespect.com"
        er.FullName = "Rodney Dangerfield"

        'Populate EmailDetails Class
         Dim ed As New EmailDetails
         ed.FromEmail = "sender@danger.com"   'This works fine
         ed.ToEmails.Add(er)                  'Here error happens
    End Sub

我猜我需要先创建一个 EmailRecipient 类的实例,然后才能向其中添加项目。

不知道如何使用公共类中的公共字段来做到这一点?

这是艰难的一天。我今天早上起床,穿上一件衬衫,一个纽扣掉了下来。我拿起公文包,把手掉了。我害怕去洗手间。

谢谢您的帮助 :-)

4

1 回答 1

1

我猜我需要创建一个 EmailRecipient 类的实例

您已经有一个 EmailRecipient 类的实例。那是你的 er 变量。您实际上有两个错误。首先,您将 ToEmails 显式设置为 Nothing:

公开 ToEmails 作为列表(电子邮件)= 无

这意味着您的 ToEmails 变量是空引用。它还没有一个实际的对象。

第二个问题是你不应该得到那个 excpetion,因为这甚至不应该编译。您将 ToEmails 定义为 List(Of Emails),但尝试向其中添加“EmailRecepient”类型的对象。那应该是编译器错误。如果不是,您需要重新打开 Option Strict 或 Option Infer。

因此,您真正需要的是 List(Of EmailRecipient) 类型的实例。像这样修复错误的代码行:

Public ToEmails As New List(Of EmailRecipient)
于 2013-04-13T04:01:23.923 回答