【问题标题】:VB.NET Class and list(of issueVB.NET 类和列表(问题
【发布时间】:2013-10-10 19:46:03
【问题描述】:

我正在使用几个自定义类,需要在一个函数中写入数据并在另一个函数中读取数据。 为此,我使用了 XM 文件。

我的问题是什么时候写数据。

这是我的代码: 导入系统.IO 进口系统

Public Class MainForm

  Public Class MyClass
    Private _id As Integer
    Private _somestring As String
    Public Property Id() As Integer
        Get
            Return _id
        End Get
        Set(ByVal Value As Integer)
            _id = Value
        End Set
    End Property
    Public Property Somestring() As String
        Get
            Return _somestring
        End Get
        Set(ByVal Value As String)
            _somestring = Value
        End Set
    End Property
End Class

Private Sub mysub()
  Dim ListVar As New List(Of MyClass)

  ' code...code.....code....

   Dim newvar As New MyClass()
   console.writeline("==== within the loop ====")
   For i As Integer = 0 To 2
     newvar.Id = I
     newvar.Somestring = "hello - " & cstr(I)
     ListVar.add(newvar)
     console.writeline("listvar(" & i & ")=" & listvar(i).Id)
   Next
    console.writeline("==== outside the loop ====")
    console.writeline("listvar(0)=" & listvar(0).Id)
    console.writeline("listvar(1)=" & listvar(1).Id)
    console.writeline("listvar(2)=" & listvar(2).Id)
  End Sub
End Class

输出:

==== 循环内====

listvar(0)=0

listvar(1)=1

listvar(2)=2

==== 循环外 ====

listvar(0)=2

listvar(1)=2

listvar(2)=2

我一定是在做一些愚蠢的事情,但我只是弄清楚它是什么......

【问题讨论】:

    标签: vb.net list class


    【解决方案1】:

    这样做:

       console.writeline("==== within the loop ====")
       For i As Integer = 0 To 2
         Dim newvar As New MyClass()
         newvar.Id = I
         newvar.Somestring = "hello - " & cstr(I)
         ListVar.add(newvar)
         console.writeline("listvar(" & i & ")=" & listvar(i).Id)
       Next
    

    newvar 仍然是同一个实例,因此 List 中的所有三个引用都指向同一个实例,其 Id 值是您在 For 循环中最后设置的值。

    【讨论】:

    • 我知道这很简单!既然你指出来了,那就说得通了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 2014-10-18
    • 2016-03-07
    相关资源
    最近更新 更多