Maison >développement back-end >C++ >Comment la portée variable affecte-t-elle la compilation en C# ?
Ambiguïté de la portée des variables en C#
La portée variable en C# peut prêter à confusion en raison de certaines règles de langage. Examinons deux exemples de code pour comprendre le problème :
Exemple de code 1 (erreur de compilation) :
<code class="language-c#">public void MyMethod(){ int i = 10; for(int x = 10; x < 20; x++){ int i = x; // 编译错误:在此作用域内重复声明变量 'i' object objX = new object(); // 编译错误:在此作用域内重复声明变量 'objX' object objX = new object(); } }</code>
Raison de l'erreur :
Exemple de code 2 (compilé avec succès) :
<code class="language-c#">public void MyMethod(){ for(int x = 10; x < 20; x++){ int i = x; object objX = new object(); } for(int x = 10; x < 20; x++){ int i = x; object objX = new object(); } }</code>
Raison du succès de la compilation :
Dans l'exemple de code 2, la règle « accolades implicites » de la boucle crée une portée distincte pour chaque itération de la boucle. Cela signifie :
Ces deux exemples de code illustrent les effets subtils de la portée des variables en C# et la confusion qu'elle peut provoquer lorsqu'elle n'est pas comprise correctement.
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!