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ść, przejażdżki, które nie muszą być oglądane lub zmieniane, ponieważ jedynie określa liczbę wywołań dysku w klasie 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 Get-Member
zmiennej $TestCar
. Zwróć uwagę, że właściwość rides nie należy do członków wymienionych w wynikach Get-Member
polecenia.
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 .
Należy pamiętać, że wyniki zawierają właściwość ukrytych przejazdów , wśród innych członków, 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;}