Как передать данные из одного действия в другое без использования намерения?

Целое - это тип значения, поэтому, когда вы назначаете 'a' на 'b', создается COPY. Дальнейшие изменения одного или другого будут влиять только на эту конкретную копию в ее собственной переменной:

Module Module1

    Sub Main()
        Dim a As Integer = 1
        Dim b As Integer = a

        Console.WriteLine("Initial State:")
        Console.WriteLine("a = " & a)
        Console.WriteLine("b = " & b)

        a = 0
        Console.WriteLine("After changing 'a':")
        Console.WriteLine("a = " & a)
        Console.WriteLine("b = " & b)

        Console.Write("Press Enter to Quit...")
        Console.ReadLine()
    End Sub

End Module

Value Type [/g1]

Если мы говорим о типах ссылок, однако, это совсем другая история.

Например, что Integer может быть инкапсулирован в класс, а классы - это ссылочные типы:

Module Module1

    Public Class Data
        Public I As Integer
    End Class

    Sub Main()
        Dim a As New Data
        a.I = 1
        Dim b As Data = a

        Console.WriteLine("Initial State:")
        Console.WriteLine("a.I = " & a.I)
        Console.WriteLine("b.I = " & b.I)

        a.I = 0
        Console.WriteLine("After changing 'a.I':")
        Console.WriteLine("a.I = " & a.I)
        Console.WriteLine("b.I = " & b.I)

        Console.Write("Press Enter to Quit...")
        Console.ReadLine()
    End Sub

End Module

Reference Type [/g2]

В этом втором примере присвоение 'a' 'b' делает 'b' ССЫЛКОЙ тому же экземпляру Data (), на который указывает 'a'. Поэтому изменения в переменной «I» от «a» или «b» будут видны обоими, поскольку оба они указывают на один и тот же экземпляр Data ().

См.: «Значение Типы и ссылочные типы "

-8
задан Pushpendra 22 May 2017 в 11:51
поделиться