Udostępnij za pośrednictwem


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 $TestCarzmiennej 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;}

Zobacz też