У меня следующая проблема:
Базовый класс ожидает получения некоторых данных, но данные инициализируются конструктором производного класса, который в C # вызывается после вызова базового конструктора.
Контекст / Что я пытаюсь решить:
Давайте назовем базовый класс Track
, его роль заключается в создании меша, который представляет дорожку длявидеоигра.
Производные классы, например, Track1
каждый выбирает данные дорожки из определенного формата файла, со значительными различиями, которые запрещают реализацию всего кода в базовом классе Track
.
Основная задача Track
состоит в том, чтобы абстрагировать данные, поступающие из производных классов, и для этого в нем есть абстрактные члены, которые должны реализовывать производные классы, например, int GetVertexCount
, Vector3 GetVertex(int)
.
.это интерфейс IPicture
, который может загружаться из разных форматов, например, BMP, JPEG, и возвращать все это как абстракцию.
Проблема, с которой я сталкиваюсь:
ВC #, конструкторы базового класса вызываются до конструктора производного класса, но я должен инициализировать что-то в конструкторе класса производного , который, в свою очередь, я должен передать конструктору класса base .И пока я нахожусь на нем, я хотел бы, чтобы члены были неизменяемыми, то есть readonly
.
Вопрос:
Как я могу запустить некоторый код всначала конструктор производного класса, чтобы я мог передать результат базовому конструктору?
Ответ:
После @ Kit ответ вот как я закончили все нормально:
По иронии судьбы, он оказался C-подобным API:)