Obiekt jako argument

0
    class Punkt
    {
        public int x;
        public int y;

        public Punkt PobierzXY()
        {
            Punkt punkt = new Punkt();
            punkt.x = x;
            punkt.y = y;
            return punkt;
        }        
    }
}
    class Class1
    {
        public static void Main()
        {
            Punkt punkt1 = new Punkt();
            Punkt punkt2;
            punkt1.x = 100;
            punkt1.y = 200;

            punkt2 = punkt1.PobierzXY();
            Console.WriteLine("Punkt2 x: {0}", punkt2.x);

        }
    }

Jak to się dzieje, że metoda PobierzXY zwraca w wyniku nowy obiekt o współrzędnych takich, jakie zostały zapisane w polach obiektu bieżącego? Nie podaję tam żadnego argumentu.
Chodzi mi o to, że punkt2.x ma po takim zapisie wartość jak punkt1.x.

Rozumiem, że punkt1.PobierzXY(); zwraca mi nowy obiekt klasy punkt ale nie rozumiem w jaki sposób są tutaj pobierane wartości współrzędnych.

2

a ta linijka co robi
punkt.x = x;

0
Miang napisał(a):

a ta linijka co robi
punkt.x = x;

Nie wiem jak się to zachowuje, bo nie wiem do czego odnosi się ten x -> punkt.x = x;.
To znaczy rozumiem, że jest to pole obiektu bieżącego ale nie potrafię tego logicznie umiejscowić, w tym kontekście do tej linijki kodu

punkt2 = punkt1.PobierzXY();

EDIT: W kontekście tego zapisu punkt1.PobierzXY(); dla metody PobierzXY, pole obiektu bieżącego to pole x obiektu punkt1?

0

C# Praktyczny Kurs to książka która więcej mi namieszała niż pomogła, nie polecam, niestety.

1 użytkowników online, w tym zalogowanych: 0, gości: 1