about_Hidden
Korte beschrijving
Beschrijft het hidden
trefwoord, waarmee klasseleden worden verborgen in de standaardresultaten Get-Member
.
Lange beschrijving
Wanneer u het hidden
trefwoord in een script gebruikt, verbergt u de leden van een klasse standaard. Verborgen leden worden niet weergegeven in de standaardresultaten van de Get-Member
cmdlet, IntelliSense of voltooiingsresultaten van tabbladen. Als u leden wilt weergeven die u met het hidden
trefwoord hebt verborgen, voegt u de parameter Force toe aan een Get-Member
opdracht.
Het hidden
trefwoord kan het volgende verbergen:
- methoden (inclusief constructors)
- gebeurtenissen
- aliaseigenschappen
- andere lidtypen (inclusief statische leden)
Verborgen leden worden niet weergegeven in tabvoltooiing of IntelliSense, tenzij de voltooiing plaatsvindt in de klasse die het verborgen lid definieert.
Met het nieuwe kenmerk System.Management.Automation.HiddenAttribute kan C#-code dezelfde semantiek hebben in PowerShell.
Het hidden
trefwoord is handig voor het maken van eigenschappen en methoden binnen een klasse die gebruikers van de klasse niet noodzakelijkerwijs willen zien of gemakkelijk kunnen bewerken.
Het hidden
trefwoord heeft geen invloed op hoe u leden van een klas kunt bekijken of wijzigen. Net als alle taaltrefwoorden in PowerShell is dit hidden
niet hoofdlettergevoelig en zijn verborgen leden nog steeds openbaar.
Het hidden
trefwoord, samen met aangepaste klassen, is geïntroduceerd in Windows PowerShell 5.0.
VOORBEELD
In het volgende voorbeeld ziet u hoe u het hidden
trefwoord in een klassedefinitie gebruikt. De methode Autoklasse , Drive, heeft een eigenschap, ritten, die niet hoeven te worden bekeken of gewijzigd omdat het slechts het aantal keren dat Drive wordt aangeroepen op de autoklasse . Die metrische waarde die niet belangrijk is voor gebruikers van de klasse (denk er bijvoorbeeld aan dat wanneer u een auto koopt, u de verkoper niet vraagt hoeveel ritten de auto heeft genomen).
Omdat er weinig behoefte is aan gebruikers van de klasse om deze eigenschap te wijzigen, kunnen we de eigenschap verbergen voor Get-Member
en automatische voltooiingsresultaten met behulp van het hidden
trefwoord.
Voeg het hidden
trefwoord toe door het in te voeren op dezelfde instructieregel als de eigenschap en het bijbehorende gegevenstype. Hoewel het trefwoord in elke volgorde op deze regel kan staan, maakt het starten van de instructie met het hidden
trefwoord het voor u later gemakkelijker om alle leden te identificeren die u hebt verborgen.
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
}
Maak nu een nieuw exemplaar van de autoklasse en sla deze op in een variabele. $TestCar
$TestCar = [Car]::new()
Nadat u het nieuwe exemplaar hebt gemaakt, kunt u de inhoud van de $TestCar
variabele doorsluisen naar Get-Member
. U ziet dat de eigenschap ritten niet tot de leden behoort die worden vermeld in de Get-Member
opdrachtresultaten.
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;}
Probeer nu opnieuw uit te voeren Get-Member
, maar voeg deze keer de -Force
parameter toe.
Houd er rekening mee dat de resultaten de eigenschap verborgen ritten bevatten, onder andere leden die standaard verborgen zijn.
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;}