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
Libérer: 2025-01-03 18:05:41
original
649 Les gens l'ont consulté

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal