Я работаю над проектом, который включает в себя много интерфейсов и наследования, которые начинают немного сложнее, и теперь я столкнулся с проблемой.
У меня есть абстрактное состояние класса, которое принимает объект Game в качестве аргумента конструктора. В моем конструкторе класса Game он принимает состояние. Идея состоит в том, что при наследовании от абстрактного базового класса Game при вызове конструктора базового класса вы даете ему исходный объект State. Однако этот объект State принимает в той же игре, в которой вы ее создаете. Код выглядит следующим образом:
public class PushGame : ManiaGame
{
public PushGame() :
base(GamePlatform.Windows, new PlayState(this), 60)
{
}
}
Однако это не работает. Я могу предположить только потому, что ключевое слово 'this' не используется до тех пор, пока конструктор не начнет выполнение. Попытка использовать его в конструкторе базового класса, по-видимому, не работает. Итак, каково было бы мое лучшее обходное решение для этого? Мой план B состоит в том, чтобы просто удалить аргумент State из конструктора класса Game и просто установить состояние внутри кода конструктора впоследствии.
Есть ли более простой, менее навязчивый способ сделать это?