Maison >développement back-end >C++ >La gestion par C# des variables non initialisées est-elle prévisible ?
La spécification du langage C# exige que les variables soient attribuées avant de les utiliser (section 5.3). Il s'agit d'une pratique courante dans d'autres langages comme le C et le C non géré en raison de problèmes de mémoire potentiels. Toutefois, les variables non initialisées se comportent différemment en C#.
La variable non initialisée est-elle nulle en C# ?
Contrairement aux attentes, les types de référence non initialisés en C# seront toujours évalués à null. Ils ne conservent pas les valeurs des appels de fonction précédents ni les valeurs aléatoires.
Variables pré-attribuées
Certaines variables, telles que les champs et les éléments de tableau, se voient automatiquement attribuer des valeurs par défaut lors de l'initialisation (null pour les types référence, zéro pour les types numériques, etc.).
Non initialisé mais initialisé
Étonnamment, les variables locales ont une affectation initiale en C# même si elles ne sont pas explicitement initialisées. Le Common Language Runtime (CLR) garantit que toutes les variables locales sont forcées à zéro, ce qui donne lieu à des valeurs par défaut prévisibles.
Application du compilateur
Malgré la pré-affectation, afin d'éviter des erreurs potentielles, les variables locales doivent toujours être attribuées explicitement avant de les utiliser en C#. Le compilateur applique cette règle, de sorte que l'état non initialisé des déchets ne peut pas être observé.
Conclusion
Bien que les variables non initialisées en C# se voient toujours initialement attribuer une valeur par défaut, il est préférable d'éviter de les utiliser pour éviter toute erreur potentielle. L’application de cette règle par le compilateur garantit la fiabilité du code C#.
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!