2

こんにちは私が書いたカスタムオブジェクトのリストに少し問題があります。list.add(xxx)メソッドを使用すると、xxxオブジェクトがリストに追加されるだけでなく、各アイテムがxxxになり、修正方法がわかりません。これが私のカスタムクラスの宣言です:

Public Class User

Private Shared n As String
Public Shared Property Name() As String
    Get
        Return n
    End Get
    Set(ByVal value As String)
        n = value
    End Set
End Property
Sub New(ByVal name As String)
    User.Name = name
End Sub


End Class

そして、ここでlist.addメソッドを呼び出します

Public Class Form1
    Private Sub subname
        Dim temp As New User
        Dim data As New List(Of User)
        For Each item As String In ListBox1.Items
            data.Add(New User(item))
        Next
    End Sub
End Sub

PSはい、私はすでに同じ問題を抱えている人々についてのいくつかの投稿を読みましたが、彼らの解決策を私のプロジェクトに適用する方法を理解していませんでした。

4

1 に答える 1

2

あなたの問題はShared財産と私的会員です。Sharedメンバーは、クラスのすべてのインスタンス間で共有されます。1つのインスタンスで設定すると、すべてのインスタンスで同じになります。

Private Shared n As String
Public Shared Property Name() As String
  ...
End Property

キーワードを削除するSharedと、期待どおりに機能するはずです。

Private n As String
Public Property Name() As String
  ...
End Property
于 2012-11-02T01:54:08.087 に答える