您好,我编写的自定义对象列表有一个小问题。当我使用 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
附注是的,我已经阅读了一些关于有同样问题的人的帖子,但不明白如何将他们的解决方案应用到我的项目中。
最佳答案
您的问题是 Shared
属性和私有(private)成员。 Shared
成员在该类的所有实例之间共享。如果您在一个实例中设置它,则所有实例都将相同。
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
关于vb.net - List.add 覆盖列表中以前的项目 VB.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13188174/