about_Hidden

Краткое описание

Описывает hidden ключевое слово, которая скрывает члены класса от результатов по умолчаниюGet-Member.

Подробное описание

При использовании hidden ключевое слово в скрипте по умолчанию скрываются члены класса. Скрытые элементы не отображаются в результатах выполнения командлета Get-Member , IntelliSense или табуляции. Чтобы отобразить элементы, скрытые с hidden помощью ключевое слово, добавьте параметр Force в Get-Member команду.

Ключевое слово hidden может скрыть:

  • методы (включая конструкторы)
  • события
  • Свойства псевдонима
  • другие типы элементов (включая статические элементы)

Скрытые элементы не отображаются в завершении вкладки или IntelliSense, если только завершение не происходит в классе, определяющем скрытый элемент.

Новый атрибут System.Management.Automation.HiddenAttribute позволяет коду C# иметь ту же семантику в PowerShell.

hidden Ключевое слово полезно для создания свойств и методов в классе, которые не обязательно хотят, чтобы пользователи класса могли просматривать или легко изменять.

Ключевое слово hidden не влияет на способ просмотра или внесения изменений в члены класса. Как и все языковые ключевое слово в PowerShell, hidden не учитывает регистр, а скрытые элементы по-прежнему открыты.

В hidden Windows PowerShell 5.0 появилась ключевое слово вместе с пользовательскими классами.

Пример

В следующем примере показано, как использовать hidden ключевое слово в определении класса. Метод класса Car, Drive, имеет свойство, поездки, которые не нужно просматривать или изменять, так как он просто превышает количество вызовов Диска в классе Car. Эта метрика, которая не важна для пользователей класса (рассмотрим, например, что при покупке автомобиля вы не спросите продавца о том, сколько дисков было принято).

Так как пользователям класса не требуется изменять это свойство, можно скрыть свойство от Get-Member результатов автоматического завершения с помощью hidden ключевое слово.

hidden Добавьте ключевое слово, введя его в ту же строку инструкции, что и свойство и его тип данных. Хотя ключевое слово может находиться в любом порядке в этой строке, начиная с инструкции с hidden ключевое слово будет проще позже определить все скрытые элементы.

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
}

Теперь создайте новый экземпляр класса Car и сохраните его в переменной. $TestCar

$TestCar = [Car]::new()

После создания нового экземпляра передайте содержимое переменной $TestCarGet-Memberв . Обратите внимание, что свойство езды не является одним из членов, перечисленных в 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;}

Теперь повторите попытку Get-Member , но на этот раз добавьте -Force параметр. Обратите внимание, что результаты содержат свойство скрытых поездок, среди других элементов, скрытых по умолчанию.

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

См. также