Appeler le constructeur à partir d'un autre constructeur en C#

Muhammad Maisam Abbas 16 février 2024
Appeler le constructeur à partir d'un autre constructeur en C#

Ce didacticiel abordera les méthodes pour appeler un constructeur à partir d’un autre constructeur de la même classe en C#.

Appeler un constructeur d’un autre constructeur de la même classe avec this mot-clé en C#

Si notre classe a plusieurs constructeurs et que nous voulons appeler un constructeur d’un autre constructeur, nous pouvons utiliser le mot-clé this en C#. Le this mot-clé est une référence à l’instance de la classe courante en C#. L’exemple de code suivant nous montre comment appeler un constructeur d’une classe à partir d’un autre constructeur de la même classe avec le mot-clé this en C#.

using System;

namespace call_another_constructor {
  class sample {
    public sample() {
      Console.WriteLine("Constructor 1");
    }
    public sample(int x) : this() {
      Console.WriteLine("Constructor 2, value: {0}", x);
    }
    public sample(int x, int y) : this(x) {
      Console.WriteLine("Constructor 3, value1: {0} value2: {1}", x, y);
    }
  }
  class Program {
    static void Main(string[] args) {
      sample s1 = new sample(12, 13);
    }
  }
}

Production:

Constructor 1 Constructor 2, value : 12 Constructor 3, value1 : 12 value2 : 13

Nous avons créé la classe sample avec 3 constructeurs différents. Le constructeur sample(int x, int y) appelle le constructeur sample(int x) et passe x comme paramètre avec this(x). Le constructeur sample(int x) appelle alors le constructeur sample avec this(). Le constructeur sample est exécuté avant le constructeur sample(int x) et le constructeur sample(int x) est exécuté avant le constructeur sample(int x, int y).

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp Class