about_Hidden
简短说明
介绍关键字 (keyword) hidden
,它从默认Get-Member
结果中隐藏类成员。
长说明
在脚本中使用hidden
关键字 (keyword) 时,默认情况下会隐藏类的成员。 隐藏成员不会显示在 cmdlet、IntelliSense 或制表符完成结果的默认 Get-Member
结果中。 若要显示已使用 hidden
关键字 (keyword) 隐藏的成员,请将 Force 参数添加到Get-Member
命令。
关键字 (keyword) hidden
可以隐藏:
- 方法 (包括构造函数)
- 活动
- 别名属性
- 其他成员类型 (包括静态成员)
隐藏成员不会显示在选项卡完成或 IntelliSense 中,除非完成发生在定义隐藏成员的类中。
新属性 System.Management.Automation.HiddenAttribute 使 C# 代码在 PowerShell 中具有相同的语义。
关键字 (keyword) hidden
可用于在类中创建不一定希望类的用户查看或易于编辑的属性和方法。
关键字 (keyword) hidden
对查看或更改类成员的方式没有影响。 与 PowerShell 中的所有语言关键字一样, hidden
不区分大小写,并且隐藏成员仍为公共成员。
hidden
Windows PowerShell 5.0 中引入了关键字 (keyword) 以及自定义类。
示例
以下示例演示如何在hidden
类定义中使用 关键字 (keyword) 。 Car 类方法 Drive 具有属性 rides,不需要查看或更改,因为它只是计算 Drive 在 Car 类上调用的次数。 该指标对类用户并不重要, (考虑,例如,当你购买汽车时,你不会询问卖方) 驾驶汽车的次数。
由于 类的用户几乎不需要更改此属性,因此可以使用 关键字 (keyword) 隐藏 Get-Member
属性和自动完成结果hidden
。
hidden
添加关键字 (keyword) ,方法是在属性及其数据类型所在的同一语句行上输入它。 尽管关键字 (keyword) 可以采用此行上的任何顺序,但从hidden
关键字 (keyword) 开始语句,以后可以更轻松地标识隐藏的所有成员。
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;}