Possible en double:
Why can’t I create an abstract constructor on an abstract C# class?Résumé Constructeur de la classe
Peut-Constructor de classe abstraite indiqués comme 'abstraite'?
Possible en double:
Why can’t I create an abstract constructor on an abstract C# class?Résumé Constructeur de la classe
Peut-Constructor de classe abstraite indiqués comme 'abstraite'?
Le numéro C# ne le supporte pas dans aucune version. Notez que les constructeurs sont non hérités dans les classes dérivées, bien qu'ils puissent être "chaînés". C'est probablement ce que vous voulez faire. Si vous voulez indiquer que la classe dérivée doit effectuer une sorte d'initialisation, vous pouvez créer une méthode abstraite Initialise
ou telle que le constructeur de la classe de base (et indirectement de la sous-classe) appelle à la création. Comme point secondaire, je ne suis pas sûr que le CLR (ou le langage CIL associé) le supporte réellement - je le soupçonne peut-être, bien qu'il soit peu utilisé à partir de C# pour la raison que je viens de mentionner.
Non, un constructeur ne peut pas être marqué comme abstrait. Dans les classes abstraites, les constructeurs sont généralement marqués protected
, du moins c'est ce que je vous recommande de faire.
Fondamentalement pas. Si son résumé, vous devez le remplacer dans une classe enfant concrète, et vous ne pouvez pas remplacer un constructeur, seulement le surcharger.
Peu importe que vous les marquiez comme 'protected' ou normal' public', car ils ne sont accessibles que via chaînage dans les classes dérivées! Dire cela, marquer comme «protégé» est probablement sensible d'un point de vue sémantique. – Noldorin
http://msdn.microsoft.com/en-us/library/ms182126(v=vs.100).aspx - sensible du point de vue sémantique autoritaire –