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

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

DDD
Libérer: 2025-01-31 16:01:10
original
108 Les gens l'ont consulté

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

c #

Instruction: est-ce l'espace de nom dans l'espace du nom? using Stylecop recommande Instructions dans l'instruction Space Name. Bien qu'il n'y ait aucune raison technique directe à cela, cela aura un léger impact sur la maintenance du code.

Considérons deux fichiers dans un projet C #: File1 et File2. Dans File1, , les instructions sont utilisées pour System.math et placées en dehors de l'espace de nom. using

Maintenant, Supposons que File2 présente une classe définie par l'utilisateur appelé exter.math. Le compilateur recherche l'espace de dénomination avant de rechercher des instructions , et il donnera la priorité à la sélection d'OUTER.MATH au lieu de System.math. Si outer.math n'a pas de membres PI comme System.math, File1 sera invalide. using

Cependant, si les instructions sont placées dans l'espace de nom, File1 peut accéder directement à System.math.
<code class="language-csharp">// File1.cs
using System;
namespace Outer.Inner
{
    // ...
}</code>
Copier après la connexion

using Maintenant, le compilateur recherche le système avant outr, trouve System.math et évite ce problème.

Bien que certaines personnes pensent qu'en raison de l'existence de System.math, il n'est pas sage d'utiliser les mathématiques comme nom de classe, mais cet exemple met en évidence la différence subtile entre placer using dans l'espace de nom ou l'espace de nom. Cette différence peut également affecter la maintenance du code.

<code class="language-csharp">// File1b.cs
namespace Outer.Inner
{
    using System;
    // ...
}</code>
Copier après la connexion
De plus, si le FOO est situé dans l'espace de dénomination externe plutôt que dans l'espace de nom outr.inner, quelle que soit l'instruction

, l'ajout de SUTR.Math au fichier2 détruira le fichier1. Cela signifie que le compilateur recherche la couche la plus intérieure de l'espace de nom avant de vérifier l'instruction

.

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!

source:php.cn
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