about_Hidden
Krótki opis
hidden
Opisuje słowo kluczowe, które ukrywa składowe klasy przed domyślnymi Get-Member
wynikami.
Długi opis
Jeśli używasz hidden
słowa kluczowego w skrycie, domyślnie ukrywasz elementy członkowskie klasy. Ukryte elementy członkowskie nie są wyświetlane w domyślnych wynikach Get-Member
polecenia cmdlet, funkcji IntelliSense lub wyników uzupełniania kart. Aby wyświetlić elementy członkowskie ukryte za pomocą słowa kluczowego hidden
, dodaj parametr Force do Get-Member
polecenia.
Słowo hidden
kluczowe może ukrywać:
- metody (w tym konstruktory)
- zdarzenia
- właściwości aliasu
- inne typy elementów członkowskich (w tym statyczne elementy członkowskie)
Ukryte elementy członkowskie nie są wyświetlane w uzupełnianiu tabulatora lub funkcji IntelliSense, chyba że ukończenie występuje w klasie definiującej ukryty element członkowski.
Nowy atrybut System.Management.Automation.HiddenAttribute umożliwia kodowi języka C# posiadanie tej samej semantyki w programie PowerShell.
Słowo hidden
kluczowe jest przydatne do tworzenia właściwości i metod w klasie, która niekoniecznie chce, aby użytkownicy klasy mogli wyświetlać lub łatwo edytować.
Słowo hidden
kluczowe nie ma wpływu na sposób wyświetlania lub wprowadzania zmian w składowych klasy. Podobnie jak wszystkie słowa kluczowe języka w programie PowerShell, hidden
nie uwzględnia wielkości liter, a ukryte elementy członkowskie są nadal publiczne.
Słowo hidden
kluczowe wraz z klasami niestandardowymi zostało wprowadzone w programie Windows PowerShell 5.0.
PRZYKŁAD
W poniższym przykładzie pokazano, jak używać słowa kluczowego hidden
w definicji klasy. Metoda klasy Car, Drive, ma właściwość Rides, która nie musi być widoczna ani zmieniana, ponieważ jedynie określa liczbę wywołań Drive klasy Car. Ta metryka, która nie jest ważna dla użytkowników klasy (rozważmy na przykład, że podczas zakupu samochodu nie pytasz sprzedawcy o liczbę dysków, które zostały podjęte).
Ponieważ nie ma potrzeby, aby użytkownicy klasy zmieniali tę właściwość, możemy ukryć właściwość przed Get-Member
i wyniki automatycznego uzupełniania przy użyciu słowa kluczowego hidden
.
hidden
Dodaj słowo kluczowe, wprowadzając je w tym samym wierszu instrukcji co właściwość i jego typ danych. Chociaż słowo kluczowe może być w dowolnej kolejności w tym wierszu, uruchomienie instrukcji ze hidden
słowem kluczowym ułatwia późniejsze zidentyfikowanie wszystkich ukrytych elementów członkowskich.
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
}
Teraz utwórz nowe wystąpienie klasy Car i zapisz je w zmiennej $TestCar
.
$TestCar = [Car]::new()
Po utworzeniu nowego wystąpienia należy przekazać zawartość zmiennej do $TestCar
zmiennej Get-Member
. Zwróć uwagę, że właściwość rides nie należy do elementów członkowskich wymienionych w wynikach polecenia 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;}
Teraz spróbuj uruchomić Get-Member
ponownie, ale tym razem dodaj -Force
parametr .
Zwróć uwagę, że wyniki zawierają ukrytą właściwość Rides między innymi elementami członkowskimi, które są domyślnie ukryte.
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;}