about_Hidden

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.

PÉLDA

Az alábbi példa bemutatja, hogyan használhatja a hidden kulcsszót egy osztálydefinícióban. Az Autóosztály metódusnak, a Drive-nak van egy tulajdonsága, utazása, amelyet nem kell megtekinteni vagy módosítani, mivel csupán megnő a Meghajtó hívásának száma az Autó osztályban. 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 parancseredményekben felsorolt tagok 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 utazások tulajdonságot, többek között az alapértelmezés szerint rejtett tagokat.

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

Lásd még