Подтвердить что ты не робот

Абстрактный класс конструктора

Возможный дубликат:
Почему я не могу создать абстрактный конструктор на абстрактном классе С#?

Может ли абстрактный класс конструктор быть помечен как "абстрактный"?

4b9b3361

Ответ 1

Нет. С# не поддерживает это в любой версии. Обратите внимание, что конструкторы не наследуются в производных классах, хотя они могут быть "скованы". Вероятно, это то, что вы хотите делать.

Если вы хотите указать, что производный класс должен выполнять некоторую инициализацию, вы можете создать абстрактный метод Initialise или такой, который конструктор базового класса (и косвенно подкласса) вызывает создание.

В качестве побочного пункта я не уверен, действительно ли CLR (или связанный с ним язык CIL) поддерживает его - я бы предположил, что это возможно, хотя для его использования в С# по этой причине мало что возможно.

Ответ 2

Нет, конструктор не может быть помечен как абстрактный. В абстрактных классах конструкторы обычно отмечаются как protected, хотя, по крайней мере, то, что я бы рекомендовал вам делать.

Ответ 3

В принципе нет.

Если его реферат, вы должны переопределить его в конкретном дочернем классе, и вы не можете переопределить конструктор, только перегрузите его.