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