Maison > développement back-end > C++ > Les directives C # «Utilisation» devraient-elles être à l'intérieur ou à l'extérieur des espaces de noms?

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

Susan Sarandon
Libérer: 2025-01-31 16:11:09
original
683 Les gens l'ont consulté

Should C# `using` Directives Be Inside or Outside Namespaces?

c #

La meilleure position de l'instruction: est-ce à l'intérieur de l'espace de dénomination ou de l'espace de nom? using Lors de l'écriture du code C #, le placement des instructions est souvent déroutant, surtout lorsque Stylecop suggère de les mettre dans l'espace de nom. Bien que cela semble être stipulé au hasard, il existe de légères différences entre les deux méthodes.

Jetons un coup d'œil à un exemple. using

Maintenant, si nous ajoutons un fichier

, le contenu est le suivant: File1.cs

using System;
namespace Outer.Inner
{
    class Foo
    {
        static void Bar()
        {
            double d = Math.PI;
        }
    }
}
Copier après la connexion
Le compilateur donnera la priorité à

d'espace nommé au lieu des instructions externes File2.cs, provoquant une référence à la défaillance

. En effet, le compilateur essaie d'abord d'analyser le symbole dans le récent espace de nom fermé.
namespace Outer
{
    class Math
    {
    }
}
Copier après la connexion

Cependant, si nous mettons l'instruction Outer dans l'instruction d'espace de nom, comme indiqué ci-dessous: using System.Math

Le compilateur recherchera d'abord des symboles dans l'espace de dénomination

, puis recherchera l'espace de dénomination using pour analyser correctement la référence de

.
namespace Outer.Inner
{
    using System;
    class Foo
    {
        static void Bar()
        {
            double d = Math.PI;
        }
    }
}
Copier après la connexion

Il convient de noter que ce comportement est également applicable à l'espace de dénomination imbriqué, et le compilateur recherche toujours la couche la plus intérieure de l'espace de dénomination. Par exemple, si est situé dans System, l'ajout de Outer dans le System.Math dans la position d'instruction

provoquera la défaillance de la compilation

. Foo namespace Outer Par conséquent, afin d'éviter de nommer les conflits et d'assurer l'exactitude du code, il est recommandé de mettre l'instruction File2 dans l'espace de nom. Outer.Math

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal