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?

Les directives C # «Utilisation» devraient-elles être placées à l'intérieur ou à l'extérieur de l'espace de noms?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-31 16:06:11609parcourir

Should C# `using` Directives Be Placed Inside or Outside the Namespace?

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

De plus, lorsque l'instruction est située dans l'espace de dénomination, le compilateur recherche l'espace de nom fermé le plus intérieur avant de rechercher des instructions
<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!

Déclaration:
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