Les constructeurs statiques en C#

Je connaissais bien les constructeurs d’instances (comme beaucoup évidemment…) mais je ne m’étais jamais posé la question de faire des constructeurs statiques, jusqu’à aujourd’hui. Il est pourtant bien possible de créer des constructeurs statiques en C#.

Ces derniers seront exécutés dans deux cas :

  • lorsqu’une propriété/méthode statique est appelée
  • lorsqu’une instance de notre type est créée

Regardons avec un exemple qui fait appel à une méthode statique.

On crée une classe Hello avec un constructeur statique et une méthode SayHello() qui affiche juste Hello World.

1
2
3
4
5
6
7
8
9
10
class Hello {
 
    static Hello() {
        Console.WriteLine("Je suis dans le constructeur.");
    }
 
    public static void SayHello() {
        Console.WriteLine("Hello World !");
    }
}

Dans notre programme de test, nous appelons notre méthode qui affiche le fameux Hello World :

1
2
3
4
5
class Program {
    static void Main(string[] args) {
        Hello.SayHello();
    }
}

Ce qui nous donne le résultat suivant :

1
2
Je suis dans le constructeur.
Hello World !

Le constructeur a été appelé comme prévu. Quelques infos en plus sur la documentation MSDN.