Dies ist eine Frage für Windows PowerShell in Aktion.
Der Operator :: ist der statische Member-Accessor. Während der Punkt Der Operator hat Instanzmitglieder, den Doppelpunktoperator, abgerufen greift auf statische Member einer Klasse zu, wie dies bei der Verknüpfung der Fall ist Methode im Beispiel am Ende des letzten Abschnitts. Der linke Operand Für den statischen Member Accessor muss ein Typ sein - entweder ein Typ Literal oder ein Ausdruck, der einen Typ zurückgibt, wie Sie hier sehen:
%Vor%Das Sprachdesign-Team entschied sich für einen separaten Operator für Zugriff auf statische Methoden aufgrund der Art, wie statische Methoden sind zugegriffen. Hier ist das Problem. Wenn Sie einen Typ MyModule mit einer statischen haben Eigenschaft namens Module, dann der Ausdruck
[MyModule].Module
ist mehrdeutig. Dies liegt daran, dass auch ein Instanzenmitglied Modul vorhanden ist die System.Type-Instanz, die den Typ MyModule darstellt. Jetzt kannst du nicht Sagen Sie, ob das Instanzmitglied "Module" auf System.Type oder das "Modul" Statisches Element in MyModule sollte abgerufen werden. Durch die Verwendung der Doppelpunktoperator entfernen Sie diese Mehrdeutigkeit.
Hinweis
Andere Sprachen umgehen Sie diese Mehrdeutigkeit mit dem Operator typeof (). Verwenden typeof () in diesem Beispiel, typeof (Mein Modul) .Module ruft die Instanzeigenschaft für das Type-Objekt und MyModule.Module ruft die statische Eigenschaft, die von der MyModule-Klasse implementiert wird.
Bruce Payette (2011-08-02 16: 22: 31.490000-05: 00). Windows PowerShell in Aktion, zweite Ausgabe (Kindle-Standorte 4494-4507). Manning Publikationen. Kindle Edition.
Tags und Links powershell