about_Hidden
簡単な説明
既定のhidden
結果からGet-Member
クラス メンバーを非表示にするキーワード (keyword)について説明します。
長い説明
スクリプトでキーワード (keyword)をhidden
使用する場合、既定ではクラスのメンバーを非表示にします。 非表示のメンバーは、コマンドレット、IntelliSense、またはタブ入力候補の結果の Get-Member
既定の結果には表示されません。 キーワード (keyword)で非表示にしたメンバーをhidden
表示するには、Force パラメーターをコマンドにGet-Member
追加します。
キーワード (keyword)ではhidden
、次の情報を非表示にできます。
- メソッド (コンストラクターを含む)
- events
- alias プロパティ
- その他のメンバー型 (静的メンバーを含む)
非表示のメンバーを定義するクラスで入力候補が発生しない限り、非表示のメンバーはタブ補完または IntelliSense に表示されません。
新しい属性 System.Management.Automation.HiddenAttribute を使用すると、C# コードが PowerShell 内で同じセマンティクスを持つことができます。
hidden
キーワード (keyword)は、必ずしもクラスのユーザーが表示したり、簡単に編集したりできないようにするプロパティとメソッドをクラス内に作成する場合に便利です。
hidden
キーワード (keyword)は、クラスのメンバーを表示または変更する方法には影響しません。 PowerShell のすべての言語キーワードと同様に、 hidden
では大文字と小文字は区別されず、非表示のメンバーは引き続きパブリックです。
キーワード (keyword)とカスタム クラスはhidden
、Windows PowerShell 5.0 で導入されました。
例
次の例は、クラス定義で キーワード (keyword)をhidden
使用する方法を示しています。 Car クラス メソッド Drive には、Drive クラスで Drive が呼び出される回数を集計するだけで済むため、表示または変更する必要のないプロパティ、乗り物があります。 このメトリックは、クラスのユーザーにとって重要ではありません (たとえば、車を購入する際に、車が何台のドライブを取ったか売り手に尋ねないことを考えてください)。
クラスのユーザーがこのプロパティを変更する必要はほとんどないため、キーワード (keyword)を使用して、プロパティGet-Member
を 非表示にしたり、自動補完の結果をhidden
表示したりできます。
hidden
プロパティとそのデータ型と同じステートメント行に入力して、キーワード (keyword)を追加します。 キーワード (keyword)は、この行で任意の順序にすることができますが、 ステートメントを キーワード (keyword) で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;}