Delen via


about_Hidden

Korte beschrijving

Beschrijft het hidden trefwoord, waarmee klasseleden worden verborgen voor 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 hebt verborgen met het hidden trefwoord, voegt u de parameter Force toe aan een Get-Member opdracht.

Het hidden trefwoord kan het volgende verbergen:

  • methoden (inclusief constructors)
  • events
  • 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 waarvan u niet per se wilt dat gebruikers van de klasse deze kunnen zien of gemakkelijk kunnen bewerken.

Het hidden trefwoord heeft geen invloed op hoe u leden van een klasse kunt weergeven of wijzigen. Zoals alle taaltrefwoorden in PowerShell, hidden is niet hoofdlettergevoelig en zijn verborgen leden nog steeds openbaar.

Het hidden trefwoord is, samen met aangepaste klassen, geïntroduceerd in Windows PowerShell 5.0.

VOORBEELD

In het volgende voorbeeld ziet u hoe u het hidden trefwoord in een klassedefinitie gebruikt. De autoklassemethode, Drive, heeft een eigenschap, rijdt, die niet hoeft te worden bekeken of gewijzigd, omdat deze alleen het aantal keren dat Drive wordt aangeroepen voor de klasse Auto, wordt aangepast. Die metrische waarde die niet belangrijk is voor gebruikers van de klasse (houd er bijvoorbeeld rekening mee dat wanneer u een auto koopt, u de verkoper niet vraagt hoeveel ritten de auto heeft genomen).

Omdat gebruikers van de klasse deze eigenschap niet hoeven te wijzigen, kunnen we de eigenschap Get-Member verbergen voor 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 willekeurige volgorde op deze regel kan staan, kunt u later gemakkelijker alle verborgen leden identificeren door de instructie te beginnen met het hidden trefwoord.

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 klasse Auto en sla deze op in een variabele, $TestCar.

$TestCar = [Car]::new()

Nadat u het nieuwe exemplaar hebt gemaakt, sluist u de inhoud van de $TestCar variabele door naar Get-Member. Houd er rekening mee 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 eigenschap verborgen ritten bevatten, naast andere leden die standaard zijn verborgen.

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

Zie ook