about_Hidden

Krátký popis

Popisuje hidden klíčové slovo, které skryje členy třídy z výchozích Get-Member výsledků.

Dlouhý popis

Když ve skriptu použijete hidden klíčové slovo, ve výchozím nastavení skryjete členy třídy. Skryté členy se nezobrazují ve výchozích Get-Member výsledcích výsledků rutiny, IntelliSense nebo dokončování karet. Pokud chcete zobrazit členy, které jste skryli pomocí klíčového hidden slova, přidejte do Get-Member příkazu parametr Force.

Klíčové hidden slovo může skrýt:

  • metody (včetně konstruktorů)
  • events
  • vlastnosti aliasu
  • jiné typy členů (včetně statických členů)

Skryté členy nejsou zobrazeny v dokončování tabulátoru nebo IntelliSense, pokud nedojde k dokončení ve třídě, která definuje skrytý člen.

Nový atribut System.Management.Automation.HiddenAttribute umožňuje kódu jazyka C# mít stejnou sémantiku v PowerShellu.

Klíčové hidden slovo je užitečné pro vytváření vlastností a metod v rámci třídy, které nemusí nutně chtít, aby uživatelé třídy viděli nebo snadno mohli upravovat.

Klíčové hidden slovo nemá žádný vliv na to, jak můžete zobrazit nebo změnit členy třídy. Stejně jako u všech klíčových slov jazyka v PowerShellu hidden se nerozlišují malá a velká písmena a skryté členy jsou stále veřejné.

Klíčové hidden slovo spolu s vlastními třídami bylo zavedeno ve Windows PowerShellu 5.0.

PŘÍKLAD

Následující příklad ukazuje, jak použít hidden klíčové slovo v definici třídy. Metoda třídy Auta, Drive, má vlastnost, jízdy, která nemusí být zobrazena nebo změněna, protože pouze sčítá počet, kolikrát je Drive volána na třídu Auta. Tato metrika, která není pro uživatele třídy důležitá (zvažte například, že při nákupu auta se neptáte prodejce na to, kolik vozů bylo odebráno).

Vzhledem k tomu, že uživatelé třídy tuto vlastnost mohou změnit, můžeme tuto vlastnost skrýt a Get-Member výsledky automatického dokončování pomocí klíčového hidden slova.

hidden Přidejte klíčové slovo zadáním na stejný řádek příkazu jako vlastnost a jeho datový typ. I když klíčové slovo může být v libovolném pořadí na tomto řádku, spuštění příkazu klíčovým slovem hidden usnadňuje pozdější identifikaci všech členů, které jste skryli.

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
}

Nyní vytvořte novou instanci třídy Car a uložte ji do proměnné $TestCar.

$TestCar = [Car]::new()

Po vytvoření nové instance předáte obsah $TestCar proměnné na Get-Member. Všimněte si, že vlastnost jízdy není mezi členy uvedenými ve Get-Member výsledcích příkazu.

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

Teď zkuste spustit Get-Member znovu, ale tentokrát přidejte -Force parametr. Všimněte si, že výsledky obsahují vlastnost skrytých jízd mimo jiné členy, které jsou ve výchozím nastavení skryté.

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

Viz také