2010-10-06 6 views
0

J'ai écrit une classe ...Comment supprimer le besoin d'un préfixe d'espace de noms?

namespace SharpQuery 
{ 
    public static class SharpQuery 
    { 
     public static IEnumerable<HtmlNode> Load(Uri uri) 
     { 
      // ... 

Mais quand je veux appeler la méthode Load à l'intérieur d'un espace de noms différent je dois écrire SharpQuery.SharpQuery.Load même si je mets using SharpQuery; en haut. Pourquoi donc? Comment puis-je me débarrasser de la nécessité de spécifier l'espace de noms?

+1

Ne compile-t-il pas vraiment ou fais-tu juste confiance à Intellisense? ;) –

+0

@Frederic: Je faisais confiance à Intellisense ..... laissez-moi l'essayer. – mpen

+0

Non. Ne compile pas non plus. 'Le type ou le nom d'espace de noms 'Load' n'existe pas dans l'espace de nom 'SharpQuery' (manque-t-il une référence d'assembly?)' – mpen

Répondre

5

Eric Lippert a écrit une série d'articles de blog disant que vous ne devriez pas avoir d'espaces de noms et de classes avec les mêmes noms. Liens ici: http://blogs.msdn.com/b/ericlippert/archive/tags/namespaces

Il l'explique beaucoup mieux que je ne pouvais.

+0

Yeesh .. 4 articles sur un petit sujet? Peut-être que je les lirai plus tard, mais pour le moment, renommer l'espace de nommage résout effectivement le problème :) Merci! – mpen

+6

@Mark: Je m'excuse d'avoir répondu à votre question si longuement. Je n'ai pas eu le temps d'écrire quelque chose de plus court. –

+1

@Eric: Haha .. pas besoin de s'excuser! J'apprécie que vous preniez le temps d'écrire ces articles pour nous n00bs :) – mpen

Questions connexes