Namespace und Klassenkonflikt (?)

8

Das ist ein schlechter Titel für die Frage, aber ich bin mir nicht ganz sicher, ob es besser ist.

Ich habe einen Namensraum namens Globals mit einer Klasse X darin. Ich habe auch eine Klasse namens Globals. Wenn ich versuche, auf Globals.X.StaticMember zuzugreifen, versucht es auf die Klasse Globals.X zuzugreifen und beschwert sich, dass X nicht existiert. Wie referenziere ich den Namespace Globals - dh :: Globals.X.StaticMember (:: kompiliert nicht).

    
dan gibson 07.05.2010, 08:58
quelle

3 Antworten

11

Versuchen Sie global::Globals.X.StaticMember .

Und Globals sind böse!

    
Snake 07.05.2010, 09:00
quelle
8

Eric Lippert hat kürzlich darüber gebloggt. Vier Blogposts nicht weniger, schau es dir an . Beginnen Sie bei Teil eins.

    
Hans Passant 07.05.2010 09:08
quelle
2

Eric Lippert hatte kürzlich eine Reihe von Blogposts, die die Probleme beschreiben, denen Sie begegnen, wenn Sie denselben Namen für eine Klasse und einen Namespace verwenden. Erklären Sie diese Aussage aus den Framework Design Guidelines in Abschnitt 3.4:

  

"Verwenden Sie nicht denselben Namen für einen Namespace und einen Typ in diesem Namespace".

Siehe hier für die verschiedenen Beiträge:

  

Benennen Sie eine Klasse nicht wie ihren Namensraum ( Teil 1 , Teil 2 , Teil 3 , Teil 4 )

    
Dirk Vollmar 07.05.2010 09:12
quelle

Tags und Links