Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Example
In het volgende voorbeeld ziet u hoe u het hidden trefwoord in een klassedefinitie gebruikt. De Car klassemethode, Drive, heeft een eigenschap, Ritten, die niet hoeft te worden bekeken of gewijzigd, omdat het slechts het aantal keren dat Drive wordt aangeroepen op de klasse Auto. 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 Rides 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 verborgen eigenschap Rides 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;}