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ść, 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-Memberzmiennej $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;}

Zobacz też