Napotkałem pewien problem i nie bardzo wiem jak najlepiej go rozwiązać.
Ogólnie chodzi o coś takiego:
public abstract class AGame
{
public Window window;
public AGame()
{
window = new Window();
inicjalizacja();
}
protected abstract void inicjalizacja();
}
class Game : AGame
{
Costam samolot;
protected override void inicjalizacja()
{
samolot = new Costam();
}
public static Game Singleton;
}
class Costam
{
public Costam()
{
Game.Singleton.window.KeyPressed += Window_KeyPressed;
}
private void Window_KeyPressed(object sender, KeyEventArgs e)
{
//jakies dzialania
}
}
class Program
{
static void Main(string[] args)
{
Game.Singleton = new Game();
}
}
Oczywiście jest tego dużo więcej ale skróciłem do samego problemu.
W konstruktorze klasy Costam nie mogę odwołać się do klasy Singletona game gdyż nie został jeszcze stworzony i aby się stworzył musi pierwsze stworzyć się klasa Costam.
Problem tkwi w tym jak w konstruktorze klasy Costam odwołać się do zrobionego obiektu window, który znajduje się w klasie która nie została jeszcze zrobiona.
Jak to zrobić?