Vb.net 如何从类中的属性中获取值

Vb.net 如何从类中的属性中获取值,vb.net,class,properties,get,Vb.net,Class,Properties,Get,我的Form1中有以下代码,其中我将为属性设置值: Dim login As New logInSession Dim k As String login.saveLogInfo = unameTB.Text 这是我的logInSession类中的代码,我将在其中存储值: Private logInfo As String Public Property saveLogInfo() As String Get Return logInfo End Get

我的Form1中有以下代码,其中我将为属性设置值:

Dim login As New logInSession
Dim k As String
login.saveLogInfo = unameTB.Text
这是我的logInSession类中的代码,我将在其中存储值:

Private logInfo As String

Public Property saveLogInfo() As String
    Get
        Return logInfo
    End Get
    Set(ByVal value As String)
        logInfo = value
    End Set
End Property
现在,我想把值返回到我的Form2。问题是它不返回任何值。以下是我的代码:

Dim login As New logInSession
Dim k As String
k = login.saveLogInfo
MsgBox(k)
你能告诉我我的密码有什么问题吗

Dim login As New logInSession // HERE
Dim k As String
k = login.saveLogInfo
MsgBox(k)
此代码创建
登录会话
类的新实例。因此,每次尝试访问
login.saveLogInfo
属性时,它都是默认值(空字符串)。您需要使用在此处创建的原始对象:

Dim login As New logInSession
Dim k As String
login.saveLogInfo = unameTB.Text

这是因为您有两个不同的
logInSession
类实例。一个在
Form1
中,另一个在
Form2
中。下面是一个例子:

Dim login As New logInSession
'you have 1 logInSession instance here, and set it's property
login.saveLogInfo = "Some Text"

Dim anotherLogin As New logInSession
'but later you check property of another instance of logInSession
Dim k = anotherLogin.saveLogInfo
'here you get empty string
Console.WriteLine(k)

'you need to, in some way, pass the first instance instead of creating new instance
Dim referenceToFirstInstance As logInSession = login
k = anotherLogin.saveLogInfo
'here you get "Some Text"
Console.WriteLine(k)

上查看此参考,如何操作?我应该删除代码中要获取值的“New”吗?那会导致一个错误,对吗?@kels016你是对的。如果看不到您的全部代码,就很难说您应该如何实现它。通常,要将数据从一个表单传递到另一个表单,需要向Form2类添加一个额外的构造函数,例如Sub New(_loginsessionas logInSession)。您可以将原始登录会话从Form1传递到Form2,并将其存储在Form2中。谢谢您给我这个想法。我用这个作为参考