Freigeben über


about_Verborgen

Kurzbeschreibung

Beschreibt das Schlüsselwort hidden, das Klassenmitglieder aus den standardmäßigen Get-Member-Ergebnissen ausblendet.

Lange Beschreibung

Wenn Sie das Schlüsselwort hidden in einem Skript verwenden, blenden Sie die Mitglieder einer Klasse per Standard aus. Ausgeblendete Mitglieder werden nicht in den Standardergebnissen des cmdlets Get-Member, IntelliSense oder den Tabulatorvervollständigungs-Ergebnissen angezeigt. Um Mitglieder anzuzeigen, die Sie mit dem Schlüsselwort hidden ausgeblendet haben, fügen Sie den Parameter Force zu einem Get-Member Befehl hinzu.

Das Schlüsselwort hidden kann Folgendes ausblenden:

  • Methoden (einschließlich Konstruktoren)
  • Ereignisse
  • Alias-Eigenschaften
  • andere Mitgliedertypen (einschließlich statischer Mitglieder)

Ausgeblendete Member werden bei der Tab-Vervollständigung oder in IntelliSense nicht angezeigt, es sei denn, die Vervollständigung erfolgt in der Klasse, die das ausgeblendete Member definiert.

Das neue Attribut System.Management.Automation.HiddenAttributeermöglicht es dem C#-Code, dieselben Semantiken in PowerShell zu haben.

Das Schlüsselwort hidden ist nützlich, um Eigenschaften und Methoden innerhalb einer Klasse zu erstellen, von denen Sie nicht unbedingt möchten, dass die Benutzer der Klasse sie sehen oder ohne weiteres bearbeiten können.

Das Schlüsselwort hidden hat keine Auswirkung darauf, wie Sie Member einer Klasse anzeigen oder ändern können. Wie bei allen Sprachschlüsselwörtern in PowerShell hidden ist nicht groß- und kleinschreibungsempfindlich, und ausgeblendete Member sind weiterhin öffentlich.

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

BEISPIEL

Das folgende Beispiel zeigt, wie Sie das Schlüsselwort hidden in einer Klassendefinition verwenden. Die Car-Klassenmethode Drive verfügt über eine Eigenschaft Fahrten, die nicht angezeigt oder geändert werden muss, da sie lediglich die Anzahl der Aufrufe von Drive auf der Car-Klasse zählt. Diese Metrik ist für Benutzer der Klasse nicht wichtig (denken Sie beispielsweise daran, dass Sie den Verkäufer beim Kauf eines Autos nicht danach fragen, wie oft das Auto gefahren wurde).

Da es für die Nutzer dieser Klasse wenig Notwendigkeit gibt, diese Eigenschaft zu ändern, können wir die Eigenschaft aus Get-Member und den automatischen Abschlussergebnissen ausblenden, indem wir das Schlüsselwort hidden verwenden.

Fügen Sie das Schlüsselwort hidden hinzu, indem Sie es in derselben Anweisungszeile wie die Eigenschaft und den zugehörigen Datentyp eingeben. Obwohl das Schlüsselwort in beliebiger Reihenfolge in dieser Zeile stehen kann, erleichtert Ihnen das Starten der Anweisung mit dem Schlüsselwort hidden später das Identifizieren aller Mitglieder, 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 Klasse Car und speichern Sie sie in einer Variablen $TestCar.

$TestCar = [Car]::new()

Nachdem Sie die neue Instanz erstellt haben, leiten Sie den Inhalt der Variablen $TestCar nach Get-Member. Beachten Sie, dass die Fahrt- 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 nun, Get-Member erneut auszuführen, fügen Sie dieses Mal jedoch den Parameter -Force hinzu. Beachten Sie, dass die Ergebnisse die ausgeblendete Eigenschaft Fahrten enthalten, neben 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