VB.NET将行数据添加到类型为List(of T)的公共类/公共字段对象引用未设置为对象实例
我试图将行添加到具有公共字段的公共类中,但遇到一个错误:对象引用未设置为对象的实例VB.NET将行数据添加到类型为List(of T)的公共类/公共字段对象引用未设置为对象实例,vb.net,class,public,generic-list,Vb.net,Class,Public,Generic List,我试图将行添加到具有公共字段的公共类中,但遇到一个错误:对象引用未设置为对象的实例 Public Class EmailRecipient EmailAddress As String = "" FullName As String = "" End Class Public Class EmailDetails Public FromEmail As String = "" Public ToEmails
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类的实例,然后才能向其添加项目
不知道如何使用公共类中的公共字段执行此操作
这是艰难的一天。我今天早上起床,穿上一件衬衫,一颗纽扣掉了。我拿起公文包,把手掉了下来。我害怕去洗手间
谢谢你的帮助:-)
我猜我需要创建EmailRecipient类的实例
您已经有EmailRecipient类的实例。这是你的er变量。这里实际上有两个错误。首先,将ToEmails显式设置为Nothing:
公共邮件列表(电子邮件)=无
这意味着您的ToEmails变量是空引用。它还没有实际的对象
第二个问题是,您不应该得到这个expetion,因为它甚至不应该编译。您将ToEmails定义为(电子邮件)列表,但尝试向其中添加“EmailRecepient”类型的对象。这应该是一个编译器错误。如果不是,则需要重新启用Option Strict或Option推断
因此,您真正需要的是列表(EmailRecipient)类型的实例。修复错误代码行,如下所示:
Public ToEmails As New List(Of EmailRecipient)
谢谢-将公共变量列表声明为新的,并且不将其设置为“无”,解决了问题:-)