Voir « Programmation avancée C#, quatrième édition »
· Une raison pour écrire un constructeur statique est qu'une classe possède des champs ou des propriétés statiques qui doivent être initialisés à partir d'une source externe avant que la classe ne soit utilisée pour la première fois.
· Les constructeurs statiques s'exécutent au plus une fois, avant que le code ne fasse référence à la classe.
· Le constructeur statique n'a pas de modificateurs d'accès et n'est jamais appelé par un autre code C#, donc les modificateurs d'accès comme public et private n'ont aucun sens.
· Le constructeur statique ne peut prendre aucun paramètre et une classe ne peut avoir qu'un seul constructeur statique.
· Les constructeurs statiques ne peuvent accéder qu'aux membres statiques de la classe, pas aux membres d'instance.
Un exemple est donné ci-dessous :
Classe publique Préférences utilisateur
{
public statique en lecture seule Couleur BackColor ;
Préférences utilisateur statiques()
{
//lire BackColor depuis la source ;
}
//...
}
classeMainEntryPoint
{
vide statique Main()
{
Console.WriteLine(UserPreferences.BackColor.ToString());
}
}
Notez que les constructeurs d'instances sans paramètre peuvent coexister en toute sécurité avec des constructeurs statiques dans une classe. Bien que la liste des paramètres soit la même, il n'y a pas de contradiction, car le constructeur statique est exécuté lorsque la classe est chargée et le constructeur d'instance est exécuté lorsque l'instance est créée, il n'y aura donc pas de conflit dans l'exécution du constructeur.
classe MaClasseTemp
{
public static int num = 100 ;
statique MyTempClass()
{
nombre = 101 ;
}
}
Programme de classe
{
static void Main(string[] arguments)
{
int x = MaClasseTemp.num ;
Console.WriteLine();
}
}
Dans le programme ci-dessus, si le constructeur statique n'est pas ajouté, la valeur de x est 100. Avec le constructeur ajouté, la valeur de x est 101.