about_Hidden
KURZE BESCHREIBUNG
Beschreibt die ausgeblendete Schlüsselwort (keyword), die Klassenmember vor Standardergebnissen Get-Member ausblendet.
LANGE BESCHREIBUNG
Wenn Sie die ausgeblendete Schlüsselwort (keyword) in einem Skript verwenden, blenden Sie die Member einer Klasse standardmäßig aus. Der ausgeblendete Schlüsselwort (keyword) kann Eigenschaften, Methoden (einschließlich Konstruktoren, Ereignisse, Aliaseigenschaften und andere Membertypen, einschließlich statischer Member), aus den Standardergebnissen des Get-Member-Cmdlets sowie aus IntelliSense- und Tabstoppabschlussergebnissen ausblenden. Um Elemente anzuzeigen, die Sie mit dem ausgeblendeten Schlüsselwort (keyword) ausgeblendet haben, fügen Sie dem Befehl Get-Member den Parameter -Force hinzu.
Ausgeblendete Member werden nicht mithilfe von Tabstopps oder IntelliSense angezeigt, es sei denn, die Vervollständigung erfolgt in der Klasse, die den ausgeblendeten Member definiert.
Das neue Attribut System.Management.Automation.HiddenAttribute wurde hinzugefügt, sodass C#-Code dieselbe Semantik in PowerShell aufweisen kann.
Der ausgeblendete Schlüsselwort (keyword) ist nützlich, um Eigenschaften und Methoden innerhalb einer Klasse zu erstellen, die anderen Benutzern der Klasse nicht unbedingt angezeigt oder ohne Weiteres bearbeitet werden können.
Die ausgeblendete 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 wird bei Ausgeblendet die Groß-/Kleinschreibung nicht beachtet, und ausgeblendete Member sind weiterhin öffentlich.
Ausgeblendet wurde zusammen mit benutzerdefinierten Klassen in PowerShell 5.0 eingeführt.
BEISPIEL
Im folgenden Beispiel wird gezeigt, wie die ausgeblendete Schlüsselwort (keyword) in einer Klassendefinition verwendet wird. Die Car-Klasse-Methode, Drive, hat eine Eigenschaft, fährt, die nicht angezeigt oder geändert werden muss (sie steigert lediglich die Anzahl der Aufrufe von Drive für die Car-Klasse, eine Metrik, die für Benutzer der Klasse nicht wichtig ist. Bedenken Sie beispielsweise, 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 mithilfe des ausgeblendeten Schlüsselwort (keyword) vor Get-Member und automatischen Vervollständigungsergebnissen ausblenden.
Fügen Sie die ausgeblendete Schlüsselwort (keyword) hinzu, indem Sie ihn in derselben Anweisungszeile wie die Eigenschaft und ihren Datentyp eingeben. Obwohl der Schlüsselwort (keyword) in dieser Zeile in beliebiger Reihenfolge erfolgen kann, erleichtert ihnen das Starten der Anweisung mit dem ausgeblendeten Schlüsselwort (keyword) es Später einfacher, alle Elemente zu identifizieren, 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 einer 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 nun erneut, Get-Member auszuführen, aber fügen Sie diesmal den Parameter -Force 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;}