Delen via


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

Zie ook