Module Module1

    Sub Main()
        ' Integer1, i Integer2 to zmienne typu Integer.
        Dim Integer1 As Integer = 100 ' Deklarujemy i inicjujemny zmienną
        Dim Integer2 As Integer  ' Tylko deklarujemy zminną
        Integer2 = Integer1      ' Kopiujemy wartość 100 do zmiennej Integer2.
        ' Mamy dwie kopie tych samych danych

        ' Arrays are reference types - macierze to typy referencyjne
        Dim NumberArray1() As Integer = {1, 2, 3}
        Dim NumberArray2() As Integer
        NumberArray2 = NumberArray1   ' Kopiujemy referncję do NumberArray2.
        ' Teraz mamy dwie zmienne odwołujace się do tej samej macierzy

        ' Ta modyfikacja odnosi sie jednocześnie do dwóch pierwszych elementów
        ' macierzy NumberArray2 oraz macierzy NumberArray1.
        NumberArray2(0) = 52

        Console.WriteLine("Jeśli to 52, to NumberArray1 jest identyczna z NumberArray2.")
        Console.WriteLine(NumberArray1(0))
        Console.WriteLine()

        NumberArray2 = NumberArray1.Clone()  ' Klonujemy, czyli tworzymy duplikat.
        ' Mamy dwie kopie tej samej macierzy.
        NumberArray2(1) = 86
        Console.WriteLine("Jeśli to nie jest 86, to klonowanie rozwiązało problem.")
        Console.WriteLine(NumberArray1(1))

        Console.ReadLine()
    End Sub

End Module
