Freigeben über


about_Hidden

Kurze Beschreibung

Beschreibt die hidden Schlüsselwort (keyword), die Klassenmember vor Standardergebnissen Get-Member ausblendet.

Lange Beschreibung

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

Die hidden Schlüsselwort (keyword) kann Folgendes ausblenden:

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

Ausgeblendete Member werden nicht in der Tabstopp-Vervollständigung oder in IntelliSense angezeigt, es sei denn, die Vervollständigung erfolgt in der Klasse, die den ausgeblendeten Member definiert.

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

Der hidden Schlüsselwort (keyword) ist nützlich, um Eigenschaften und Methoden innerhalb einer Klasse zu erstellen, die Benutzer der Klasse nicht unbedingt sehen oder bearbeiten können.

Die hidden Schlüsselwort (keyword) hat keine Auswirkung darauf, wie Sie Member einer Klasse anzeigen oder Änderungen an Membern einer Klasse vornehmen können. Wie bei allen Sprachschlüsselwörtern in PowerShell hidden wird die Groß-/Kleinschreibung nicht beachtet, und ausgeblendete Member sind weiterhin öffentlich.

Die hidden Schlüsselwort (keyword) wurde zusammen mit benutzerdefinierten Klassen in Windows PowerShell 5.0 eingeführt.

BEISPIEL

Im folgenden Beispiel wird gezeigt, wie die hidden Schlüsselwort (keyword) in einer Klassendefinition verwendet wird. Die Car-Klasse-Methode, Drive, verfügt über eine Eigenschaft, die fährt, die nicht angezeigt oder geändert werden muss, da sie nur die Anzahl der Aufrufe von Drive für die Car-Klasse hochschreibt. 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 Antriebe das Auto genommen wurde).

Da benutzer der -Klasse diese Eigenschaft nur wenig ändern müssen, können wir die -Eigenschaft aus und die Ergebnisse der automatischen Vervollständigung mithilfe der hidden Schlüsselwort (keyword) ausblendenGet-Member.

Fügen Sie die hidden Schlüsselwort (keyword) hinzu, indem Sie ihn in derselben Anweisungszeile wie die -Eigenschaft und ihren Datentyp eingeben. Obwohl die Schlüsselwort (keyword) in dieser Zeile in beliebiger Reihenfolge erfolgen kann, erleichtert ihnen das Starten der Anweisung mit dem hidden Schlüsselwort (keyword) später die Identifizierung 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 instance der Car-Klasse, und speichern Sie sie in der Variablen $TestCar.

$TestCar = [Car]::new()

Nachdem Sie die neue instance erstellt haben, übergeben Sie den Inhalt der $TestCar Variablen an Get-Member. Beachten Sie, dass die Rides-Eigenschaft nicht zu den Membern 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 fügen Sie diesmal den -Force Parameter hinzu. Beachten Sie, dass die Ergebnisse neben anderen Elementen, die standardmäßig ausgeblendet sind, die eigenschaft hidden rides enthalten.

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;}

Weitere Informationen