about_Hidden
簡短描述
描述 hidden
關鍵詞,此關鍵詞會隱藏默認 Get-Member
結果中的類別成員。
完整描述
當您在文稿中使用 hidden
關鍵詞時,預設會隱藏類別的成員。 隱藏的成員不會顯示在 Cmdlet、IntelliSense 或索引標籤完成結果的默認結果 Get-Member
中。 若要顯示您已使用 hidden
關鍵詞隱藏的成員,請將 Force 參數新增至 Get-Member
命令。
關鍵字 hidden
可以隱藏:
- 方法 (包括建構函式)
- 事件
- 別名屬性
- 其他成員類型 (包括靜態成員)
除非在定義隱藏成員的類別中發生完成,否則隱藏成員不會顯示在 Tab 鍵自動完成或 IntelliSense 中。
新的屬性 System.Management.Automation.HiddenAttribute 可讓 C# 程式代碼在 PowerShell 中具有相同的語意。
關鍵詞 hidden
對於在類別內建立屬性和方法很有用,您不一定希望類別的使用者查看或立即能夠編輯。
關鍵詞 hidden
不會影響如何檢視或變更類別的成員。 就像 PowerShell 中的所有語言關鍵詞一樣, hidden
不會區分大小寫,而且隱藏的成員仍為公用。
hidden
關鍵詞以及自定義類別是在 Windows PowerShell 5.0 中引進。
範例
下列範例示範如何在類別定義中使用 hidden
關鍵詞。 Car 類別方法 Drive 具有屬性、車程,不需要檢視或變更,因為它只是在 Car 類別上呼叫 Drive 的次數。 類別使用者不重要的計量 (例如,當您購買汽車時,您不會詢問賣方) 已取用汽車的磁碟驅動器數目。
因為類別的使用者不需要變更此屬性,所以我們可以使用 關鍵詞來隱藏 屬性, 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;}