vb.net - List.add 覆盖列表中以前的项目 VB.NET

标签 vb.net list

您好,我编写的自定义对象列表有一个小问题。当我使用 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/

相关文章:

Python在另一个列表中查找列表中的项目

python合并未排序列表——算法分析

vb.net - MS Access 网络共享缓慢

python - 在 Python 中从列表中删除元素的简单方法

vb.net - 使用手机从 vb.net 应用程序发送短信

.net - 获取网页内容并进行处理(打印或保存到文件)

python - 如何在python中自动创建父类的所有子对象?

python - 迭代项目列表并将它们分组到具有相似度分数的字典中的最快方法是什么

mysql - 代码已运行但没有输出,我的错误是什么?

c# - 将 Entity Framework 查询结果放入 DataTable 的最快方法是什么?