Можно создать дубликат:
Why can’t I create an abstract constructor on an abstract C# class?Абстрактный класс Constructor
Может конструктор абстрактного класса помечены как 'абстрактный'?
Можно создать дубликат:
Why can’t I create an abstract constructor on an abstract C# class?Абстрактный класс Constructor
Может конструктор абстрактного класса помечены как 'абстрактный'?
Номер C# не поддерживает это в любой версии. Обратите внимание, что конструкторы не унаследованы в производных классах, хотя они могут быть «прикованными». Вероятно, это то, что вы хотите делать.
Если вы хотите указать, что производный класс должен выполнять какую-то инициализацию, вы можете создать абстрактный метод Initialise
или такой, который конструктор базового класса (и косвенно подкласса) вызывает создание.
В качестве побочного пункта я не уверен, поддерживает ли CLR (или родственный язык CIL), - я подозреваю, что это возможно, хотя из-за C# это мало используется по указанной только причине.
Нет, конструктор не может быть помечен как абстрактный. В абстрактных классах конструкторы обычно помечены как protected
, хотя, по крайней мере, это то, что я бы рекомендовал вам делать.
В принципе нет.
Если его реферат, вы должны переопределить его в конкретном дочернем классе, и вы не можете переопределить конструктор, а только перегрузить его.
На самом деле неважно, будете ли вы отмечать их как «защищенные» или обычные «публичные», так как они доступны только через цепочку в производных классах! Утверждение, что маркировка как «защищенная», вероятно, разумна с семантической точки зрения. – Noldorin
http://msdn.microsoft.com/en-us/library/ms182126(v=vs.100).aspx - разумный из авторитетной семантической точки зрения –