Maison >développement back-end >C++ >Les directives C # «Utilisation» devraient-elles être placées à l'intérieur ou à l'extérieur de l'espace de noms?
c #
Instruction: appeler l'espace ou à l'extérieur?
using
Lorsque vous vérifiez le code C # avec Stylecop, vous pouvez recevoir un avertissement et il est recommandé de l'instruction d'instruction dans l'espace de nom. Bien que certains développeurs puissent être plus enclins à les mettre en dehors de l'espace de nom, il y a en effet une raison technique d'envisager de les mettre dans l'espace de nom.
L'influence de l'organisation des fichiers using
Imaginez les deux fichiers, file1.cs et file2.cs, comme indiqué ci-dessous: file1.cs:
file2.cs:
<code class="language-csharp">using System; namespace Outer.Inner { class Foo { static void Bar() { double d = Math.PI; } } }</code>Si est placé à l'extérieur de l'espace de dénomination (tel que file1.cs), le compilateur donnera la priorité à la recherche de l'espace de noms interne. Par conséquent, il trouvera exter.math au lieu de System.math. Si outr.math n'a pas les membres requis, cela peut entraîner des erreurs.
Solution: Placer Instructions dans l'espace de nom
<code class="language-csharp">namespace Outer { class Math { } }</code>
Placer dans l'espace de nom (comme indiqué dans le fichier 1b.cs suivant) peut s'assurer que la recherche du système avant de rechercher l'espace de nom interne: using
Dans ce cas, le compilateur trouvera System.math pour résoudre les erreurs potentielles causées par la définition du conflit dans différents espaces de dénomination.
using
Précautions
Les instructions peuvent être placées dans l'espace de dénomination pour simplifier la maintenance du code en garantissant un espace de référence cohérent. Il peut également mettre en évidence le conflit potentiel entre les classes définies et le système nommé espaces définis par l'utilisateur. using
<code class="language-csharp">namespace Outer.Inner { using System; class Foo { static void Bar() { double d = Math.PI; } } }</code>. Cela signifie que l'ajout d'un over.math à file2.cs détruira file1.cs, peu importe où l'instruction
est placée.
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!