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