Explication détaillée de l'ordre d'exécution du constructeur C#
Lors de la définition d'un constructeur en C#, une question clé est la suivante : le constructeur de la classe actuelle est-il exécuté avant ou après l'appel du constructeur de la classe de base ?
Ordre d'exécution
La séquence d'exécution suit les étapes suivantes :
- Les variables membres de toutes les classes de la hiérarchie d'héritage sont initialisées aux valeurs par défaut.
- Commencez par la classe la plus dérivée :
- Exécutez un initialiseur de variable pour le type le plus dérivé.
- La chaîne de constructeurs détermine le constructeur de classe de base à appeler.
- Initialisez la classe de base (appliquez ces étapes de manière récursive).
- Les corps des constructeurs dans la chaîne d'héritage de cette classe sont exécutés séquentiellement.
- Veuillez noter que contrairement à Java, la classe de base est initialisée après l'exécution de l'initialiseur de variable.
Exemple
Considérez la hiérarchie de classes suivante :
<code class="language-csharp">class Base
{
public Base(int param1)
{
// 构造函数主体
}
}
class Derived : Base
{
public Derived(int param1, int param2) : base(param1)
{
// 构造函数主体
}
}</code>
Copier après la connexion
Lors de la création d'une instance Derived, la séquence d'exécution est la suivante :
- Attribuez des valeurs par défaut aux variables membres de Base et Derived.
- Exécutez l'initialiseur de variable de Derived et définissez ses propres variables membres.
- Appelez le constructeur de la classe de base (Base(int param1)) avec les paramètres spécifiés.
- Exécutez le corps du constructeur de Derived.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!