Dupliquer possible:
Les utilisations doivent-elles être à l’intérieur ou à l’extérieur de l’espace de noms
J’ai vu deux approches d’utilisation d’assemblages. Quelle est la différence et les avantages d’utiliser l’un par rapport à l’autre
namespace Assembly { using System.Data; class Foo{ ... } } using System.Data; namespace Assembly { class Foo{ ... } }
Il y a en fait une petite différence entre eux.
Considérons l’exemple suivant:
//File1.cs using System; namespace Outer.Inner { class Foo { static void Bar() { double d = Math.PI; } } } // File2.cs namespace Outer { class Math { } }
Le compilateur obtiendra une erreur car il trouvera une classe Math
dans un espace de noms Outer
avant de rechercher un espace de noms System
. Et à l’intérieur de cet espace de noms Math
il n’y a pas de PI
.
Au cas où, si vous mettez plutôt using System
dans la déclaration de classe, celle-ci sera sélectionnée par le compilateur en premier , de sorte qu’aucune erreur ne sera générée.
L’avantage de cela est clair: si vous obtenez du code, si quelqu’un écrit la classe Math
dans le même espace-noms que celui qui vous a écrit, vous avez la possibilité de résoudre ce problème.
Pour des explications plus détaillées, regardez sur ce lien (d’où j’ai gracieusement copié le code également). Les actions doivent-elles être à l’intérieur ou à l’extérieur de l’espace de noms?
Je ne crois pas qu’il y ait un avantage à l’un ou l’autre format. Cela dépend simplement des normes de codage et de la lisibilité des équipes.