Maison >développement back-end >C++ >Comment les variables statiques sont-elles initialisées en C# ?

Comment les variables statiques sont-elles initialisées en C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-03 18:05:41696parcourir

How are Static Variables Initialized in C#?

Initialisation des variables statiques en C#

En C#, les variables statiques sont initialisées différemment selon la présence d'un constructeur statique et du flag beforefieldinit .

Initialisation sans statique Constructeur

S'il n'y a pas de constructeur statique défini au sein d'une classe, les variables statiques sont initialisées :

  • Lorsque le type est chargé en mémoire.
  • Avant tous les constructeurs d'instances sont appelés.
  • Avec impatience, ce qui signifie que les valeurs sont attribuées immédiatement.

Initialisation avec un constructeur statique

Lorsqu'un constructeur statique est présent :

  • beforefieldinit Flag :

    • false : les variables statiques sont initialisées avant que le constructeur statique ne soit appelé.
    • true : les variables statiques sont initialisées paresseusement, lors de leur premier accès.
  • .NET 4 et versions antérieures : beforefieldinit est par défaut false, ce qui entraîne une initialisation rapide.
  • .NET 4.5 et versions ultérieures : beforefieldinit est défini par défaut sur true, ce qui conduit à un comportement paresseux initialisation.

Conclusion

L'initialisation des variables statiques en C# dépend de la présence d'un constructeur statique et de la valeur de l'indicateur beforefieldinit. Pour garantir une initialisation correcte, il est recommandé de ne pas s'appuyer sur un comportement spécifique et d'utiliser simplement du code normal pour accéder aux champs statiques.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn