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

Quand et comment les variables statiques sont-elles initialisées en C# ?

DDD
Libérer: 2025-01-03 21:23:45
original
804 Les gens l'ont consulté

When and How Are Static Variables Initialized in C#?

Initialisation des variables statiques en C#

Les variables statiques jouent un rôle crucial dans la programmation orientée objet, fournissant un état partagé entre les instances d'un classe. Comprendre quand les variables statiques apparaissent est essentiel pour les développeurs travaillant avec C#.

Moment de l'initialisation des variables statiques

En C#, l'initialisation des variables statiques dépend de plusieurs facteurs :

1. Constructeurs statiques :

Une classe peut avoir un constructeur statique, généralement déclaré à l'aide du modificateur static. Le constructeur statique est invoqué lorsque la classe est chargée en mémoire. Si un constructeur statique existe, il s'exécute avant que les variables statiques ne soient initialisées.

2. Indicateur BeforeFieldInit :

L'indicateur beforefieldinit contrôle si les champs statiques sont initialisés avant ou après l'appel du constructeur d'instance. Par défaut, cet indicateur est défini sur true en C#, ce qui signifie que les champs statiques sont initialisés avant la création d'une instance.

3. Chargement de classe :

Le chargement de classe se produit lorsqu'une classe est référencée pour la première fois dans le programme. Cela se produit lorsqu'un objet de la classe est instancié ou lorsqu'un de ses membres statiques est accédé.

Processus d'initialisation réel

En C#, le processus d'initialisation précis de static variables dépend de la séquence d'événements suivante :

  • Chargement de la classe : La classe est chargée dans mémoire.
  • Constructeur statique : Si un constructeur statique existe, il est exécuté.
  • Initialisation des champs statiques : Tous les champs statiques sont initialisés dans l'ordre dans lequel ils sont déclarés dans la classe, qu'ils soient explicitement initialisés ou non.
  • Instance constructeur : Si une instance de la classe est créée, le constructeur d'instance est appelé.

Exemple :

public class MyClass
{
    public static int StaticVar; // Default value of 0

    public MyClass()
    {
        StaticVar++; // Increment the value of the static variable
    }
}
Copier après la connexion

Dans cet exemple, la variable statique StaticVar sera initialisée à 0 lors du chargement de la classe. Lorsqu'un objet de MyClass est créé, le constructeur d'instance sera appelé, incrémentant la valeur de StaticVar.

Conclusion

Le timing d'initialisation des variables statiques en C# est un sujet complexe influencé par des facteurs tels que les constructeurs statiques et l'indicateur beforefieldinit. Cependant, tant que du code normal est utilisé pour accéder aux champs statiques, ils seront initialisés avant d'être utilisés. Pour des informations plus détaillées, reportez-vous aux ressources fournies dans la réponse fournie.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal