При построении структуры классов я хотел бы, чтобы производные классы потенциально имели производные классы-члены.Например:
class GamePiece
{
}
class Checker : GamePiece
{}
class ChessMan : GamePiece
{}
class Game
{
protected GamePiece _piece;
}
class Checkers : Game
{
Checkers(){ _piece = new Checker(); }
}
class Chess : Game
{
Chess(){_piece = new ChessMan();}
}
Это серьезно упрощено, но имеет смысл.Теперь, предполагая, что есть события и тому подобное, я хотел бы присоединить общие в конструкторе базового класса и специализированные в производном конструкторе.Например, у шахматиста и шахматиста может быть «захваченное» событие и «перемещенное» событие.Я хотел бы прикрепить их в базовом конструкторе.Тем не менее, события, которые будут специфическими, такими как «замкнутый» или что-то подобное, будут прикреплены только в конкретном конструкторе.
Проблема, с которой я столкнулся, заключается в том, что базовый конструктор, по-видимому, может запускаться только ДО производного конструктора.Как мне сделать это так, чтобы я мог на самом деле создать «игровой элемент», прежде чем вызвать базовый конструктор «Game» для прикрепления к событиям.
Мой инстинкт подсказывает, что это лучше обрабатывать, удаляя эту функциональность из конструктора и просто имея функцию-член Attach () и обрабатывая ее там.Тем не менее, я хочу убедиться, что я иду в правильном направлении, так как, казалось бы, должен быть способ сделать это в конструкторе.