about_Hidden

簡短描述

描述 hidden 關鍵詞,其會隱藏默認 Get-Member 結果中的類別成員。

詳細描述

當您在文稿中使用 hidden 關鍵詞時,預設會隱藏 類別的成員。 隱藏的成員不會顯示在 Cmdlet、IntelliSense 或索引標籤完成結果的默認結果 Get-Member 中。 若要顯示您已使用 hidden 關鍵詞隱藏的成員,請將 Force 參數新增Get-Member命令。

關鍵字 hidden 可以隱藏:

  • 方法(包括建構函式)
  • 活動
  • 別名屬性
  • 其他成員類型(包括靜態成員)

除非完成發生在定義隱藏成員的類別中,否則隱藏成員不會顯示在索引標籤完成或 IntelliSense 中。

新的屬性 System.Management.Automation.HiddenAttribute 可讓 C# 程式代碼在 PowerShell 中具有相同的語意。

hidden關鍵詞適用於在類別內建立屬性和方法,而您不一定想要類別的使用者查看或輕鬆地編輯。

關鍵詞 hidden 不會影響您如何檢視或變更類別的成員。 與 PowerShell 中的所有語言關鍵詞一樣, hidden 不區分大小寫,隱藏成員仍為公用。

關鍵詞 hidden 以及自定義類別是在 Windows PowerShell 5.0 中引進的。

範例

下列範例示範如何在類別定義中使用 hidden 關鍵詞。 Car 類別方法 Drive 具有屬性、騎車,不需要檢視或變更,因為它只會指出 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 參數。 請注意,結果包含隱藏 的騎乘 屬性,以及其他預設隱藏的成員。

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

另請參閱