Przesyłanie obiektu do metody

Odpowiedz Nowy wątek
2015-11-06 16:02
Złoty Orzeł
0

Jeśli mamy referencje do danego obiektu i przesyłamy go przez wartość do metody to w metodzie jest kopia tej referencji do obiektu. I jeśli jest to kopia to czemu może zmieniać dane dla głównego obiektu?

Pozostało 580 znaków

2015-11-06 16:06
0

Bo to kopia referencji a nie kopia obiektu?

Pozostało 580 znaków

2015-11-06 17:28
1

Referencja jest jak skierowanie do tego samego lekarza, nie ważne ilu różnym osobom, na każde zapytanie od odpowie ten sam specjalista. Jeśli chcesz innego rezultatu musisz mieć zupełnie nowe skierowanie, w C# służy do tego słowo kluczowe "new".

edytowany 2x, ostatnio: topik92, 2015-11-06 18:07

Pozostało 580 znaków

2015-11-07 13:36
Złoty Orzeł
0

To jeśli wysyłam kopie referencji to jakby tworzę kopię głęboką? A jak wysyłam oryginał referencji wtedy tworzę kopię płytką?

Pozostało 580 znaków

2015-11-07 15:52
0

jesli to nie jest value type (jak struct, enum czy prymityw) to do funkcji zawsze wysylasz referencje a nie obiekt

Pozostało 580 znaków

2015-11-07 17:29
Złoty Orzeł
0

kopie referencji albo oryginał referencji

Pozostało 580 znaków

2015-11-07 21:01
Złoty Orzeł
0

jesli to nie jest value type (jak struct, enum czy prymityw) to do funkcji zawsze wysylasz referencje a nie obiekt.

Ale chyba kopie referencji?

Pozostało 580 znaków

2015-11-07 21:03
0

Możesz wysłać referencje, albo jej kopie, ale nie obiekt.

Pozostało 580 znaków

2015-11-08 10:42
0

Zmienne definiowane jako klasa działają jako referencje do obiektu przechowywanego w pamięci. I to właśnie te zmienne wysyłasz czy kopiujesz.

Pozostało 580 znaków

2015-11-08 11:35
Krzywy Kaczor
0

Obiekt jest cały czas jeden dopóki go jawnie nie sklonujesz
Nie ma różnicy czy przesyłasz referencję czy kopię referencji - to nadal referencje do tego samego obiektu

Pozostało 580 znaków

2015-11-09 21:51
Złoty Orzeł
0

Jeśli mam taką funkcję i przesyłam kopię referencji do obiektu klasy Osoba:

static void Funkcja(Osoba p)
p.wiek = 10;

p = new Osoba("Tadeusz",25); 

to dlaczego do referencji p nie można przypisać nowej referencji?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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