Целое - это тип значения, поэтому, когда вы назначаете '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
[/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
[/g2]
В этом втором примере присвоение 'a' 'b' делает 'b' ССЫЛКОЙ тому же экземпляру Data (), на который указывает 'a'. Поэтому изменения в переменной «I» от «a» или «b» будут видны обоими, поскольку оба они указывают на один и тот же экземпляр Data ().