Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Krátký popis
Popisuje klíčové slovo hidden, které skryje členy třídy z výchozích Get-Member výsledků.
Dlouhý popis
Když ve skriptu použijete klíčové slovo hidden, ve výchozím nastavení skryjete členy třídy. Skryté členy se nezobrazují ve výchozích výsledcích rutiny Get-Member, IntelliSense nebo dokončování pomocí tabulátoru. Pokud chcete zobrazit členy, které jste skryli pomocí klíčového slova hidden, přidejte do příkazu parametr Get-Member.
Klíčové slovo hidden může skrýt:
- metody (včetně konstruktorů)
- události
- vlastnosti aliasu
- jiné typy členů (včetně statických členů)
Skryté členy nejsou viditelné při automatickém doplňování nebo IntelliSense, pokud k doplnění nedojde přímo 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é slovo hidden 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é slovo hidden nemá žádný vliv na to, jak můžete zobrazit nebo provádět změny členů třídy. Stejně jako u všech klíčových slov jazyka v PowerShellu se hidden nerozlišují malá a velká a skryté členy jsou stále veřejné.
Klíčové slovo hidden spolu s vlastními třídami bylo zavedeno ve Windows PowerShellu 5.0.
Example
Následující příklad ukazuje, jak použít klíčové slovo hidden v definici třídy. Metoda třídy Car, Drive, má vlastnost, Jízdy, která nemusí být zobrazena nebo změněna, protože pouze sčítá, kolikrát Drive je volána na Car třídy. Ukazatel, který není pro uživatele dané kategorie důležitý (zvažte například, že když kupujete auto, neptáte se prodejce, kolikrát bylo auto řízeno).
Protože uživatelé třídy tuto vlastnost mění jen zřídka, můžeme tuto vlastnost skrýt z Get-Member a výsledků automatického dokončování pomocí klíčového slova hidden.
Přidejte klíčové slovo hidden zadáním na stejném řádku 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 s 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 proměnné $TestCar do Get-Member. Všimněte si, že vlastnost Rides není mezi členy uvedenými ve výsledcích příkazu 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;}
Teď zkuste spustit Get-Member znovu, ale tentokrát přidejte parametr -Force.
Všimněte si, že výsledky obsahují skryté Jízdy vlastnost, 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;}