Est-il possible de surcharger un constructeur en C#?
Est-il possible de surcharger le constructeur de la classe de base dans la classe dérivée?
Si oui, comment peut-il être accompli et dans ce cas d'utilisation serait-ce pratique? Si non, pourquoi pas?
- Cher Expert de codage vient de la logique, que je suis en train de demander à l'resion
- D'autres ont répondu bien. Dans le cas où vous ne savez pas la syntaxe pour "chainig" les constructeurs, c'est comme pour l':
internal MyClass(string name) : base(null, 0, name) { ... }
. Dans cet exemple, le constructeur appelle un constructeur de base avec trois paramètres. - Rouvrir les électeurs: veuillez modifier la question aux normes habituelles, avant le vote, pour la réouverture.
- édité.
Vous devez vous connecter pour publier un commentaire.
Non, vous ne pouvez pas remplacer les constructeurs. Le concept n'a pas de sens en C#, parce que les constructeurs ne sont tout simplement pas invoquée polymorphically. Vous avez toujours l'état de la classe à laquelle vous êtes en train de construire, et les arguments du constructeur.
Les constructeurs ne sont pas héritées du tout - mais tous les constructeurs d'une classe dérivée doit être lié soit à un autre constructeur de la même classe, ou à l'un des constructeurs de la classe de base. Si vous ne le faites pas explicitement, le compilateur implicitement chaînes pour le constructeur sans paramètre de la classe de base (et une erreur se produit si le constructeur n'existe pas ou est inaccessible).
Type
cas, ou par la fourniture de séparer les classes usine, plutôt lourde en comparaison.Non, les Constructeurs ne sont pas héritées. Vous ne pouvez pas les remplacer dans la classe dérivée.
Raison
Non, vous ne pouvez pas surcharger le constructeur.
Si vous jetez un oeil à la syntaxe de base d'un constructeur, il doit avoir le même nom que la classe que vous écrivez pour.
Permet de dire,vous écrivez une méthode avec le même nom que celui de la classe de base(le même que celui de constructeur de classe de base), juste que sa va être une nouvelle méthode dans la classe dérivée sans type de retour spécifié, qui est syntaxiquement incorrect.