Obiekt jako argument

Obiekt jako argument
WO
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:16
0
Kopiuj
    class Punkt
    {
        public int x;
        public int y;

        public Punkt PobierzXY()
        {
            Punkt punkt = new Punkt();
            punkt.x = x;
            punkt.y = y;
            return punkt;
        }        
    }
}
Kopiuj
    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.

edytowany 1x, ostatnio: woks
Miang
  • Rejestracja:około 7 lat
  • Ostatnio:4 minuty
  • Postów:1676
2

a ta linijka co robi
punkt.x = x;


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
WO
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:16
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

Kopiuj
punkt2 = punkt1.PobierzXY();

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

edytowany 2x, ostatnio: woks
Miang
weź jakaś książkę dla początkujących, poczytaj co to jest funkcja i co się dzieje jak ją wywołujesz....
Miang
swoją drogą wymóg jawnego pisania self czy this ma swoje zalety...... tak to pole obiektu na rzecz którego została wywołana ta metoda
WO
Czytam książkę do C# i są tam błędy... I zgadzam się, że "this" dużo by mi tu wcześniej wyjaśniło.
GU
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:43
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.