Il est possible de déclarer les Using à l’extérieur ou à l’intérieur du namespace :
| Extérieur : using System;
using Guid = System.Guid;
namespace Microsoft.Sample
{
public class Program
{
}
}
|
Intérieur :
namespace Microsoft.Sample
{
using System;
using Guid = System.Guid;
public class Program
{
}
}
|
L’utilisation de Style Cop (Microsoft Source Analysis) lève une erreur lorsque les directives « Using » ne sont pas à l’intérieur du namespace :
SA1200 : UsingDirectivesMustBePlacedWithinNamespace
Cause : A C# using directive is placed outside of a namespace element.
Rule Description : A violation of this rule occurs when a using directive or a using-alias directive is placed outside of a namespace element, unless the file does not contain any namespace elements.
Pourquoi faut-il placer les directives Using à l'intérieur du Namespace ?
Deux raisons :
- Les Alias : la définition des Alias à l'intérieur du namespace permet d'éviter des conflits entre des Alias et des types.
- La lisibilité : Quel est l'information la plus importante ? Plus que le namespace de ma class, c'est les using utilisés qui apportent le plus d'informations.
Ces deux raisons sont suffisantes pour que je préconise la déclaration des Using à l'intérieur du namespace.
A propos des performances ?
Une autre raison invoquée pour placer les using à l'intérieur du namespace est les performances. Ceci s'avère faux dans la pratique. Je vous invite à faire vos propres test ou à lire les articles suivant :
Et vous qu'est-ce que vous préconisez ?