Kompilator nie rozpoznaje typu obiektu.

0

Witam, mam w swoim programie metode WyborPostaci() która zwraca obiekt mogący być typu "Wojownik lub Mag", obie te klasy dziedziczą po klasie Postać.

                switch (Console.ReadLine())
                {
                    case "1":
                        woj.Wybor();
                        x = true;
                        return woj;
                    case "2":
                        mag.Wybor();
                        x = true;
                        return mag;
                    default:
                        Console.WriteLine("popraw sie");
                        break;
                }

Powyżej moment w którym funkcja zwraca obiekt.
Aby móc komfortowo się do tego obiektu odwoływać, i aby korzystał on z metod odpowiednich dla klasy Mag lub Wojownik wymyśliłem sobie że stworze w main inny obiekt i po prostu przypisze mu ten z metody WyborPostaci().

            var postacUzytkownika = Postać.WyborPostaci();
            postacUzytkownika.JakasMetoda();

Moje rozwiązanie oczywiście nie działa, kompilator nie wie jakiego typu jest obiekt postacUzytkownika.
Nie wiem co napisać aby móc normalnie korzystać ze wszystkich metod używając obiektu postacUzytkownika.

0

Polecam przeczytać o dziedziczeniu i o polimorfiźmie.
https://msdn.microsoft.com/pl-pl/library/ms173152.aspx

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