Example #1
0
        // Typ wartośiowy, a referencyjny.

        static void Main(string[] args)
        {
            Referencja r1 = new Referencja();
            Referencja r2 = new Referencja();

            r1.Liczba = 1;

            Console.WriteLine("Początkowa wartość właściwości obiektu r1 wynosi {0}, a r2 {1}",
                              r1.Liczba, r2.Liczba);

            // Przypisanie REFERENCJI obiektu r1 do obiektu r2.
            r2 = r1;

            // Teraz obiekt r2 przechowuje REFERENCJĘ do obiektu r1.
            // Każda zmiana na obiekcie r2 będzie widoczna na obiekcie r1.

            r2.Liczba = 2;

            Console.WriteLine("\nPo zmianie TYLKO NA OBIEKCIE r2 wartości właściwości obiektu" +
                              " r1 wynosi {0}, a r2 {1}", r1.Liczba, r2.Liczba);

            /*------------------------------------------------------------------------------------*/

            // Zwróć uwagę, że domyślnie przy tworzeniu obiektu struktury, jego składowe są wypełniane
            // wartośćiami dla nich domyślnymi.
            Punkt p1 = new Punkt();
            Punkt p2 = new Punkt(2, 2);

            Console.WriteLine("\n\nPoczątkowa wartość składowych struktury p1 wynosi {0}.{1}, a p2 {2}.{3}",
                              p1.X, p1.Y, p2.X, p2.Y);

            // Przypisanie WARTOŚCI struktury p1 do struktury p2.
            p2 = p1;

            Console.WriteLine("\nPo przypisaniu wartość składowych struktury p1 wynosi {0}.{1}, a p2 {2}.{3}",
                              p1.X, p1.Y, p2.X, p2.Y);

            p2.X = 22;
            p2.Y = 13;

            // Typy wartościowe NIE SĄ ze sobą powiązane.
            // Przez przypisanie do siebie typów wartościowych, następuje przypisanie WARTOŚCI ich,
            // składowych, a nie REFERENCJI do nich.

            Console.WriteLine("\n\nPo zmienie TYLKO NA STRUKTURZE p2: p1 wynosi {0}.{1}, a p2 {2}.{3}",
                              p1.X, p1.Y, p2.X, p2.Y);



            Console.ReadKey();
        }
Example #2
0
        // Typ wartośiowy, a referencyjny.

        static void Main(string[] args)
        {
            Referencja r1 = new Referencja();
            Referencja r2 = new Referencja();

            r1.Liczba = 1;

            Console.WriteLine("Początkowa wartość właściwości obiektu r1 wynosi {0}, a r2 {1}",
                              r1.Liczba, r2.Liczba);

            // Przypisanie REFERENCJI obiektu r1 do obiektu r2.
            r2 = r1;
          
            // Teraz obiekt r2 przechowuje REFERENCJĘ do obiektu r1.
            // Każda zmiana na obiekcie r2 będzie widoczna na obiekcie r1.

            r2.Liczba = 2;

            Console.WriteLine("\nPo zmianie TYLKO NA OBIEKCIE r2 wartości właściwości obiektu" +
                              " r1 wynosi {0}, a r2 {1}", r1.Liczba, r2.Liczba);

            /*------------------------------------------------------------------------------------*/

            // Zwróć uwagę, że domyślnie przy tworzeniu obiektu struktury, jego składowe są wypełniane
            // wartośćiami dla nich domyślnymi.
            Punkt p1 = new Punkt();
            Punkt p2 = new Punkt(2, 2);

            Console.WriteLine("\n\nPoczątkowa wartość składowych struktury p1 wynosi {0}.{1}, a p2 {2}.{3}",
                              p1.X, p1.Y, p2.X, p2.Y);

            // Przypisanie WARTOŚCI struktury p1 do struktury p2.
            p2 = p1;

            Console.WriteLine("\nPo przypisaniu wartość składowych struktury p1 wynosi {0}.{1}, a p2 {2}.{3}",
                              p1.X, p1.Y, p2.X, p2.Y);

            p2.X = 22;
            p2.Y = 13;

            // Typy wartościowe NIE SĄ ze sobą powiązane.
            // Przez przypisanie do siebie typów wartościowych, następuje przypisanie WARTOŚCI ich,
            // składowych, a nie REFERENCJI do nich.

            Console.WriteLine("\n\nPo zmienie TYLKO NA STRUKTURZE p2: p1 wynosi {0}.{1}, a p2 {2}.{3}",
                              p1.X, p1.Y, p2.X, p2.Y);



            Console.ReadKey();
        }