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 Get-Member
, IntelliSense eller flikslutresultatet. Om du vill visa medlemmar som du har dolt med nyckelordet hidden
lägger du till force-parametern i ett Get-Member
kommando.
Nyckelordet hidden
kan döljas:
- metoder (inklusive konstruktorer)
- händelser
- aliasegenskaper
- andra medlemstyper (inklusive statiska medlemmar)
Dolda medlemmar visas inte i tabbavslut 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
påverkar inte hur du kan visa eller göra ändringar i medlemmar i en klass. Precis som alla språknyckelord i PowerShell hidden
är det inte skiftlägeskänsligt och dolda medlemmar är fortfarande offentliga.
Nyckelordet hidden
, 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 i klassen Bil. Det mått som inte är viktigt för klassens användare (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 något behov av att användare av klassen ändrar 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 gör det enklare för dig att senare identifiera alla medlemmar som du har dolt genom att starta -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 Bil och spara den i en variabel, $TestCar
.
$TestCar = [Car]::new()
När du har skapat den nya instansen skickas 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 dolda åkattraktioner , 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;}