Pracuję nad projektem, który wymaga wielu interfejsów i dziedziczenia, które zaczynają być trochę trudne, a teraz mam problem.Używanie "this" w konstruktorze podstawowym?
Mam stan klasy abstrakcyjnej, który przyjmuje obiekt Game jako argument konstruktora. W moim konstruktorze klasy Game zajmuje Stan. Chodzi o to, że dziedzicząc po abstrakcyjnej podstawowej klasie Game, wywołując konstruktor klasy podstawowej, nadajemy mu początkowy obiekt stanu. Jednak ten obiekt stanu przyjmuje tę samą grę, w której jest tworzony. Kod wygląda następująco:
public class PushGame : ManiaGame
{
public PushGame() :
base(GamePlatform.Windows, new PlayState(this), 60)
{
}
}
To jednak nie działa. Mogę tylko założyć, że słowo kluczowe "this" nie może być użyte, dopóki konstruktor nie zacznie wykonywać. Próba użycia go w konstruktorze klasy podstawowej najwyraźniej nie działa. Więc jaki byłby mój najlepszy sposób obejścia tego? Mój plan B polega na usunięciu argumentu State z konstruktora klasy Game i po prostu ustawieniu stanu wewnątrz kodu konstruktora.
Czy jest to łatwiejszy, mniej inwazyjny sposób na zrobienie tego?
Proszę nie zamieniać tytułów na "C#" i tym podobne. Po to są te tagi. –