Freigeben über


about_Hidden

Kurze Beschreibung

Beschreibt das hidden Schlüsselwort, mit dem Klassenmitglieder aus den Standardergebnissen Get-Member ausgeblendet werden.

Lange Beschreibung

Wenn Sie das hidden Schlüsselwort in einem Skript verwenden, blenden Sie die Member einer Klasse standardmäßig aus. Ausgeblendete Elemente werden nicht in den Standardergebnissen des Get-Member Cmdlets, IntelliSense oder der Abschlussergebnisse der Registerkarte angezeigt. Um Elemente anzuzeigen, die Sie mit dem hidden Schlüsselwort ausgeblendet haben, fügen Sie den Parameter Force zu einem Get-Member Befehl hinzu.

Das hidden Schlüsselwort kann ausblenden:

  • Methoden (einschließlich Konstruktoren)
  • events
  • Aliaseigenschaften
  • andere Membertypen (einschließlich statischer Member)

Ausgeblendete Member werden nicht im Abschluss der Registerkarte oder IntelliSense angezeigt, es sei denn, der Abschluss erfolgt in der Klasse, die das ausgeblendete Element definiert.

Das neue Attribut System.Management.Automation.HiddenAttribute ermöglicht C#-Code dieselbe Semantik in PowerShell.

Das hidden Schlüsselwort ist nützlich, um Eigenschaften und Methoden in einer Klasse zu erstellen, die Benutzer der Klasse nicht unbedingt sehen oder leicht bearbeiten können.

Das hidden Schlüsselwort hat keine Auswirkungen darauf, wie Sie Member einer Klasse anzeigen oder vornehmen können. Wie bei allen Sprachstichwörtern in PowerShell hidden wird die Groß-/Kleinschreibung nicht beachtet, und ausgeblendete Member sind weiterhin öffentlich.

Das hidden Schlüsselwort wurde zusammen mit benutzerdefinierten Klassen in Windows PowerShell 5.0 eingeführt.

BEISPIEL

Das folgende Beispiel zeigt, wie das hidden Schlüsselwort in einer Klassendefinition verwendet wird. Die Car-Klasse , Drive, hat eine Eigenschaft, Fahrten, die nicht angezeigt oder geändert werden müssen, da es nur die Anzahl der Male hoch ist, die Drive auf der Car-Klasse aufgerufen wird. Diese Metrik, die für Benutzer der Klasse nicht wichtig ist (denken Sie beispielsweise daran, dass Sie beim Kauf eines Autos den Verkäufer nicht fragen, wie viele Laufwerke das Auto genommen wurde).

Da es für Benutzer der Klasse wenig Erforderlich ist, diese Eigenschaft zu ändern, können wir die Eigenschaft Get-Member mithilfe des hidden Schlüsselworts ausblenden und die Ergebnisse automatisch abschließen.

Fügen Sie das hidden Schlüsselwort hinzu, indem Sie es in derselben Anweisungszeile wie die Eigenschaft und den zugehörigen Datentyp eingeben. Obwohl das Schlüsselwort in einer beliebigen Reihenfolge in dieser Zeile sein kann, erleichtert das Starten der Anweisung mit dem hidden Schlüsselwort später das Identifizieren aller Elemente, die Sie ausgeblendet haben.

class Car
{
   # Properties
   [String] $Color
   [String] $ModelYear
   [int] $Distance

   # Method
   [int] Drive ([int]$miles)
   {
      $this.Distance += $miles
      $this.rides++
      return $this.Distance
   }

   # Hidden property of the Drive method
    hidden [int] $rides = 0
}

Erstellen Sie nun eine neue Instanz der Car-Klasse, und speichern Sie sie in einer Variablen. $TestCar

$TestCar = [Car]::new()

Nachdem Sie die neue Instanz erstellt haben, führen Sie den Inhalt der $TestCar Variablen an Get-Member. Beachten Sie, dass die Rides-Eigenschaft nicht zu den Mitgliedern gehört, die in den Get-Member Befehlsergebnissen aufgeführt sind.

PS C:\Windows\system32> $TestCar | Get-Member

   TypeName: Car

Name        MemberType Definition
----        ---------- ----------
Drive       Method     int Drive(int miles)
Equals      Method     bool Equals(System.Object obj)
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
ToString    Method     string ToString()
Color       Property   string Color {get;set;}
Distance    Property   int Distance {get;set;}
ModelYear   Property   string ModelYear {get;set;}

Versuchen Sie Get-Member es nun erneut, aber diesmal den Parameter hinzuzufügen -Force . Beachten Sie, dass die Ergebnisse die Eigenschaft "Ausgeblendete Fahrten" enthalten, unter anderen Elementen, die standardmäßig ausgeblendet sind.

PS C:\Windows\system32> $TestCar | Get-Member -Force

   TypeName: Car

Name          MemberType   Definition
----          ----------   ----------
pstypenames   CodeProperty System.Collections.ObjectModel.Collection`1
psadapted     MemberSet    psadapted {Color, ModelYear, Distance,
psbase        MemberSet    psbase {Color, ModelYear, Distance,...
psextended    MemberSet    psextended {}
psobject      MemberSet    psobject {BaseObject, Members,...
Drive         Method       int Drive(int miles)
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
get_Color     Method       string get_Color()
get_Distance  Method       int get_Distance()
get_ModelYear Method       string get_ModelYear()
get_rides     Method       int get_rides()
set_Color     Method       void set_Color(string )
set_Distance  Method       void set_Distance(int )
set_ModelYear Method       void set_ModelYear(string )
set_rides     Method       void set_rides(int )
ToString      Method       string ToString()
Color         Property     string Color {get;set;}
Distance      Property     int Distance {get;set;}
ModelYear     Property     string ModelYear {get;set;}
rides         Property     int rides {get;set;}

Siehe auch