La réponse de Darin est correcte mais pas exhaustive - car cela fait aussi une différence dans la manière dont les directives using effectuent elles-mêmes la recherche: qu'elles tentent de faire correspondre les noms dans un autre espace de noms.
Eric Lippert a un great blog post entrant dans plus de détails. À mon avis, le point le plus important est à la fin:
donc mon conseil est maintenant:
- ont un seul espace de noms de niveau supérieur par fichier
- si vous choisissez de mettre à l'aide des directives à l'intérieur de vos espaces de noms, puis entièrement les qualifier avec le qualificatif d'alias global
en corollaire, je suggère que le deuxième point signifie que l'utilisation directe Les ives dans les espaces de noms sont plus difficiles à obtenir que d'utiliser des directives en dehors des espaces de noms, j'irais les mettre dehors.
Ceci est juste un problème de compilation - cela n'affecte que la façon dont le compilateur recherche les noms, et non le code généré en utilisant ces noms.
Un point de la terminologie finale: votre question parle de using
déclarations, mais tous ces éléments sont using
directives.La déclaration using
est celui qui acquiert une ressource et en dispose à la fin:
using (Stream stream = ...)
{
// ...
}
Je mentionne cela seulement dans l'esprit de la formation continue - il était évident que vous vouliez dire dans ce cas particulier :)
http://stackoverflow.com/questions/795098/net-namespaces-and-using-statements –
http://stackoverflow.com/questions/125319/should-usings-be-inside-or-horside-the-namespace –