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()
После создания нового экземпляра передайте содержимое переменной $TestCar
Get-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;}
См. также
PowerShell