about_Hidden
Kort beskrivning
Beskriver nyckelordet hidden
, som döljer klassmedlemmar från standardresultat Get-Member
.
Lång beskrivning
När du använder nyckelordet hidden
i ett skript döljer du medlemmarna i en klass som standard. Dolda medlemmar visas inte i standardresultatet för cmdleten, IntelliSense eller tabbifyllningsresultatet Get-Member
. Om du vill visa medlemmar som du har dolt med nyckelordet hidden
lägger du till parametern Force i ett Get-Member
kommando.
Nyckelordet hidden
kan dölja:
- metoder (inklusive konstruktorer)
- händelser
- aliasegenskaper
- andra medlemstyper (inklusive statiska medlemmar)
Dolda medlemmar visas inte i tabbifyllning eller IntelliSense om inte slutförandet sker i klassen som definierar den dolda medlemmen.
Med det nya attributet System.Management.Automation.HiddenAttribute kan C#-koden ha samma semantik i PowerShell.
Nyckelordet hidden
är användbart för att skapa egenskaper och metoder i en klass som du inte nödvändigtvis vill att användare av klassen ska kunna se eller enkelt kunna redigera.
Nyckelordet hidden
har ingen effekt på hur du kan visa eller göra ändringar i medlemmar i en klass. Precis som alla språknyckelord i PowerShell hidden
är inte skiftlägeskänsliga och dolda medlemmar är fortfarande offentliga.
Nyckelordethidden
, tillsammans med anpassade klasser, introducerades i Windows PowerShell 5.0.
EXEMPEL
I följande exempel visas hur du använder nyckelordet hidden
i en klassdefinition. Bilklassmetoden, Drive, har en egenskap, åkattraktioner, som inte behöver ses eller ändras eftersom den bara räknar antalet gånger som Drive anropas på bilklassen. Det mått som inte är viktigt för användare av klassen (tänk till exempel på att när du köper en bil, frågar du inte säljaren om hur många enheter bilen har tagits).
Eftersom det inte finns mycket behov för användare av klassen att ändra den här egenskapen kan vi dölja egenskapen från Get-Member
och automatiskt slutföranderesultat med hjälp av nyckelordet hidden
.
Lägg till nyckelordet hidden
genom att ange det på samma instruktionsrad som egenskapen och dess datatyp. Även om nyckelordet kan vara i valfri ordning på den här raden, blir det enklare för dig att identifiera alla medlemmar som du har dolt om du startar -instruktionen med nyckelordet hidden
.
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
}
Skapa nu en ny instans av klassen Car och spara den i en variabel, $TestCar
.
$TestCar = [Car]::new()
När du har skapat den nya instansen skickar du innehållet i variabeln $TestCar
till Get-Member
. Observera att egenskapen rides inte finns bland de medlemmar som anges i kommandoresultatet Get-Member
.
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;}
Försök nu att köra Get-Member
igen, men lägg till parametern den -Force
här gången.
Observera att resultatet innehåller egenskapen hidden rides , bland andra medlemmar som är dolda som standard.
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;}