Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Rövid leírás
A kulcsszót ismerteti, amely elrejti az hidden osztálytagokat az alapértelmezett Get-Member eredmények elől.
Hosszú leírás
Ha szkriptben használja a hidden kulcsszót, alapértelmezés szerint elrejti egy osztály tagjait. A rejtett tagok nem jelennek meg a parancsmag, az IntelliSense vagy a Get-Member lapkiegészítési eredmények alapértelmezett eredményei között. A kulcsszóval hidden elrejtett tagok megjelenítéséhez adja hozzá a Force paramétert egy Get-Member parancshoz.
A hidden kulcsszó elrejthető:
- metódusok (beleértve a konstruktorokat is)
- események
- alias tulajdonságai
- egyéb tagtípusok (beleértve a statikus tagokat is)
A rejtett tagok csak akkor jelennek meg a lapkizárásban vagy az IntelliSense-ben, ha a befejezés a rejtett tagot meghatározó osztályban történik.
Az új attribútum, a System.Management.Automation.HiddenAttribute lehetővé teszi, hogy a C#-kód ugyanazokkal a szemantikával rendelkezzen a PowerShellben.
A hidden kulcsszó olyan tulajdonságok és metódusok létrehozására használható egy osztályon belül, amelyeket nem feltétlenül szeretné, hogy az osztály felhasználói láthassanak vagy szerkeszthessenek.
A hidden kulcsszónak nincs hatása arra, hogyan tekintheti meg vagy módosíthatja az osztály tagjait. A PowerShell hidden összes nyelvi kulcsszavaihoz hasonlóan a kis- és nagybetűk sem érzékenyek, és a rejtett tagok továbbra is nyilvánosak.
A hidden kulcsszó és az egyéni osztályok a Windows PowerShell 5.0-ban jelentek meg.
Example
Az alábbi példa bemutatja, hogyan használhatja a hidden kulcsszót egy osztálydefinícióban. A Car osztály metódusa, Drive, rendelkezik egy tulajdonságával, Rides, amelyet nem kell megtekinteni vagy módosítani, mivel csupán megnő a MeghajtóAutó osztályba való meghívásának száma. Ez a metrika, amely nem fontos az osztály felhasználói számára (vegye figyelembe például, hogy amikor autót vásárol, nem kérdezi meg az eladót, hogy hány meghajtót vett az autó).
Mivel az osztály felhasználóinak nem kell módosítaniuk ezt a tulajdonságot, a kulcsszó használatával elrejthetjük a tulajdonságot Get-Member , és automatikusan befejezhetjük a hidden találatokat.
Adja hozzá a hidden kulcsszót úgy, hogy a tulajdonságot és az adattípust ugyanabban az utasítássorban adja meg. Bár a kulcsszó bármilyen sorrendben szerepelhet ezen a sorban, a kulcsszóval való hidden kezdés megkönnyíti később az összes rejtett tag azonosítását.
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
}
Most hozza létre az Autó osztály új példányát, és mentse egy változóba. $TestCar
$TestCar = [Car]::new()
Az új példány létrehozása után a változó tartalmát $TestCar a következőre csövezheti Get-Member. Figyelje meg, hogy a Rides tulajdonság nem szerepel a Get-Member parancs eredményei között.
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;}
Most próbálkozzon újra, Get-Member de ezúttal adja hozzá a paramétert -Force .
Vegye figyelembe, hogy az eredmények tartalmazzák a rejtett Rides tulajdonságot a többi, alapértelmezés szerint rejtett tag között.
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;}