Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Краткое описание
Описывает ключевое 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, имеет свойство, Rides, который не требуется просматривать или изменять, так как он просто превышает количество раз, когда 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
в . Обратите внимание, что свойство Rides не является одним из членов, перечисленных в результатах команды 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
параметр.
Обратите внимание, что результаты содержат скрытое свойство Rides среди других элементов, скрытых по умолчанию.
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