L'initialisation des variables en C# est un autre exemple de l'accent mis par C# sur la sécurité. En termes simples, le compilateur C# exige qu'une variable soit initialisée avec une valeur initiale quelconque avant de pouvoir être référencée dans une opération. La plupart des compilateurs modernes signalent les variables non initialisées comme des avertissements, mais le compilateur C# la traite comme une erreur. Cela nous empêche de récupérer accidentellement des valeurs résiduelles laissées en mémoire par d'autres programmes.
Il existe deux méthodes d'initialisation des variables en C# pour garantir qu'une variable est initialisée avant d'être utilisée :
- Si une variable est un champ dans une classe ou une structure et n'est pas explicitement initialisée, sa valeur est définie sur une valeur par défaut lors de la création de la variable :0(Les classes et les structures sont abordées plus loin.)
- Les variables locales d'une méthode doivent être explicitement initialisées dans le code avant que leurs valeurs ne puissent être utilisées dans des instructions. Dans ce cas, l'initialisation n'est pas effectuée lorsque la variable est déclarée, mais le compilateur vérifie tous les chemins possibles à travers la méthode et, s'il détecte que la valeur d'une variable locale est utilisée avant son initialisation, il génère une erreur.
L'approche de C# est à l'opposé de celle de C++. En C++, le compilateur laisse au programmeur le soin de garantir que les variables sont initialisées avant utilisation, tandis qu'en Visual Basic, toutes les variables ont automatiquement leur valeur définie sur0。
Analyse d'exemples d'initialisation de variables en C#
Par exemple, en C#, l’instruction suivante ne peut pas être utilisée :
public static int Main(){ int d; Console.WriteLine(d); // Erreur ! Doit être initialisé avant utilisation }Notez que ce code montre comment définir Main() afin qu’il retourne des données de type int au lieu de void.
Lors de la compilation de ce code, vous obtiendrez le message d’erreur suivant :
Use of unassigned local variable 'd'
Considérez l’instruction suivante :
Something objSomething;
En C++, le code ci-dessus crée une instance de la classe Something sur la pile. En C#, cette ligne de code crée seulement une référence pour un objet Something, mais cette référence ne pointe encore vers aucun objet. Appeler une méthode ou une propriété sur cette variable provoquera une erreur.
Pour instancier un objet de référence en C#, vous devez utiliser le mot-clé new. Comme mentionné ci-dessus, créez une référence, puis utilisez le mot-clé new pour faire pointer cette référence vers un objet stocké sur le tas :
objSomething = new Something();
URL d’origine : https://www.cnblogs.com/shiguangshuo/p/4842144.html