Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Krótki opis
Opisuje słowo kluczowe hidden, które ukrywa składowe klasy przed domyślnymi wynikami Get-Member.
Długi opis
W przypadku używania słowa kluczowego hidden w skrypcie domyślnie ukrywasz członków klasy. Ukryci członkowie nie są wyświetlani w domyślnych wynikach polecenia cmdlet Get-Member, IntelliSense ani wynikach uzupełniania kart. Aby wyświetlić członków ukrytych słowem kluczowym hidden, dodaj parametr Force do polecenia Get-Member.
Słowo kluczowe hidden może ukryć:
- 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 uzupełnienie występuje w klasie definiującej ukrytego elementu członkowskiego.
Nowy atrybut System.Management.Automation.HiddenAttributeumożliwia korzystanie z tego samego semantyki kodu języka C# w programie PowerShell.
Słowo kluczowe hidden jest przydatne do tworzenia właściwości i metod w klasie, których niekoniecznie chcesz, aby użytkownicy klasy widzieli lub mogli łatwo edytować.
Słowo kluczowe hidden 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 kluczowe hidden wraz z klasami niestandardowymi zostało wprowadzone w programie Windows PowerShell 5.0.
Example
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 tej klasy (rozważ, że przy zakupie samochodu nie pytasz sprzedawcy, ile razy samochód był używany).
Ponieważ użytkownicy klasy nie muszą zmieniać tej właściwości, możemy ukryć właściwość przed Get-Member i automatycznymi wynikami uzupełniania przy użyciu słowa kluczowego hidden.
Dodaj słowo kluczowe hidden, wprowadzając je w tym samym wierszu instrukcji co właściwość i jego typ danych. Mimo że słowo kluczowe może być w dowolnej kolejności w tym wierszu, rozpoczęcie instrukcji od słowa kluczowego hidden ułatwia późniejsze zidentyfikowanie wszystkich ukrytych elementów.
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 przekierować zawartość zmiennej $TestCar do 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 ponownie uruchomić Get-Member, ale tym razem dodaj parametr -Force.
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;}