Przekazanie obiektu do metody jako referencja

0

Jak zrobić żeby metoda zmieniała prawdziwy obiekt?

pseudo kod

// mam sobie 2 obiekty
Czlowiek patryk;
ZamieniaczImienia zamien;
zamien.ZamienImie(patryk);


console(patryk.imie); // ma wypisac Janek


// metoda od klasy ZamieniaczImienia
void ZamienImie(Czlowiek czlowiek)
{
  czlowiek.imie = "Janek";
}
1

Przecież zamienia: https://ideone.com/m2EnR0, bo klasa jest typem referencyjnym więc pracujesz na oryginale. Natomiast C# to nie C++ i kod, który tutaj napisałeś nawet się nie skompiluje, bo np. to Czlowiek patryk nie jest obiekt klasy Czlowiek (tak, jak by to miało miejsce w C++ właśnie), a to console nie wiem czym jest ale na pewno spowoduje błąd kompilacji. ;-)

Tak samo tutaj poleci NullReferenceException:

ZamieniaczImienia zamien;
zamien.ZamienImie(patryk);

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.