簡體   English   中英

如何從類的屬性中獲取值

[英]How to get a value back out from a property in a class

我的Form1中有以下代碼,其中我將Value設置為一個屬性:

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)

此代碼創建logInSession類的實例。 因此,每次嘗試訪問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)

查閱此參考資料, 了解如何在表單之間傳遞數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM