共用方式為


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;}

另請參閱