代码之家  ›  专栏  ›  技术社区  ›  user432209

对对象与对象列表使用新关键字

  •  0
  • user432209  · 技术社区  · 11 年前

    我试图理解 NEW 关键字与对象列表一起使用时。

    示例A:

    这将打印出Class值=10 10次。

    Public Class TestClass
        Private _testInt As Integer
        Property TestInt As Integer
            Get
                Return _testInt
            End Get
            Set(value As Integer)
                _testInt = value
            End Set
        End Property
    End Class
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim test As New List(Of TestClass)
            Dim localTest = New TestClass
            For i As Integer = 0 To 10
                localTest.TestInt = i
                test.Add(localTest)
            Next
            For i As Integer = 0 To 10
                Console.WriteLine("Class value = " & test(i).TestInt.ToString)
            Next
        End Sub
    

    示例B:

    如果我提出 localTest 在循环内部,它将输出Class值=1到10。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim test As New List(Of TestClass)
        For i As Integer = 0 To 10
            Dim localTest = New TestClass
            localTest.TestInt = i
            test.Add(localTest)
        Next
        For i As Integer = 0 To 10
            Console.WriteLine("Class value = " & test(i).TestInt.ToString)
        Next
    End Sub
    

    在我看来 本地测试 test 就像指向对象的指针列表。

    问题1。 本地测试 对象的实例或指向对象的指针?

    问题2。 测验 对象的多个实例或指向对象的指针列表?如果是的话 指针列表,为什么示例a打印出Class值=10 10次?

    问题3。 你能解释一下为什么会这样吗 New 关键字表示处理对象与对象集合或对象列表时的区别?

    任何额外的见解都会很棒。非常感谢。

    编辑:

    我在下面标记了一个被接受的答案,主要是因为它包含了一个非常有用的网页链接。网页上写着以下内容,帮助我了解了发生的事情:

    可以为变量指定引用类型或值类型 对象数据类型的。Object变量始终包含指向 数据,而不是数据本身。但是,如果指定值类型 对于Object变量,它的行为就像保存自己的数据一样。

    1 回复  |  直到 11 年前
        1
  •  1
  •   Steven Doggart    11 年前

    TestClass 被声明为 Class 。这意味着它是 reference type 。由于它是引用类型,这意味着该类型的所有变量都将充当指针。如果希望它不充当指针,则需要将其声明为 Structure (值类型)。

    在一些其他语言中,相同类型的值可以直接由变量或作为指针(例如。 int x; int *x; 在C中)。然而,在.NET语言中,该决定是由类型而不是变量全局决定的。

    引用类型列表是指针列表。值类型列表存储实际值的副本。

    推荐文章