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 Get-Member
.
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;}