Was bedeutet global :: in den .Net-Designer-Dateien?

7

Hier ist eine Frage, die ich seit einiger Zeit hatte, aber nie wirklich dazu kam, zu fragen ...

In vielen der Designer-Dateien, die Visual Studio generiert, sind einige der Variablen mit dem Präfix global :: Kann jemand erklären, was das bedeutet, was dieses Präfix macht und wo sollte ich es verwenden?

    
Calanus 10.07.2009, 07:43
quelle

4 Antworten

12

Mit dem globalen Namespace-Qualifikationsmerkmal können Sie auf ein Mitglied im globalen ("leeren") Namespace zugreifen.

Wenn Sie einen nicht qualifizierten Typ aufrufen würden (z. B. MyClass.DoSomething () anstelle von MyNamespace.MyClass.DoSomething ()), wird davon ausgegangen, dass er sich im aktuellen Namespace befindet. Wie qualifizierst du den Typ, um zu sagen, dass er im globalen / leeren Namespace ist?

Dieses Codebeispiel (Konsolenanwendung) sollte sein Verhalten veranschaulichen:

%Vor%     
Rob Levine 10.07.2009, 07:57
quelle
4

Das Präfix gibt den globalen Namespace an. Hier ist ein Beispiel:

%Vor%

Beachten Sie, wie sich das Mitglied möglicherweise unbeabsichtigt auf die Foo.Bar.Gnat-Klasse bezieht. Um dies zu vermeiden, verwenden Sie das Präfix global ::.

    
Martin Liversage 10.07.2009 07:54
quelle
3

global :: namespace qualifier wird in auto generated verwendet, um Kollisionen bei der Typauflösung durch verschachtelte Namespaces zu vermeiden.

    
Ihar Voitka 10.07.2009 08:34
quelle
1

Von hier

  

Wenn der linke Bezeichner global ist,   die Suche nach dem richtigen Bezeichner   beginnt am globalen Namespace.

    
Colin 10.07.2009 07:48
quelle

Tags und Links