ja-JP/about_Hidden.help.txt

TOPIC
    about_Hidden

簡単な説明
    既定の Get-Member の結果からクラスメンバーを隠す hidden キーワードに
    ついて説明します。

詳細な説明
    スクリプトで hidden キーワードを使用すると、クラスのメンバーが既定で
    隠されます。隠されたメンバーは、Get-Member コマンドレット、IntelliSense、
    タブ補完の既定の結果には表示されません。hidden キーワードで隠した
    メンバーを表示するには、Get-Member コマンドに Force パラメーターを
    追加します。

    hidden キーワードは次のものを隠すことができます。

    - メソッド(コンストラクターを含む)
    - イベント
    - エイリアスプロパティ
    - その他のメンバーの種類(静的メンバーを含む)

    隠されたメンバーは、その隠されたメンバーを定義しているクラス内で補完が
    行われる場合を除き、タブ補完や IntelliSense には表示されません。

    新しい属性 System.Management.Automation.HiddenAttribute により、C# の
    コードでも PowerShell 内で同じ動作を実現できます。

    hidden キーワードは、クラスの利用者には必ずしも見せたくない、または
    簡単に編集させたくないプロパティやメソッドをクラス内に作成するのに役立ち
    ます。

    hidden キーワードは、クラスのメンバーの表示や変更の方法には影響しません。
    PowerShell のすべての言語キーワードと同様に、hidden は大文字と小文字を
    区別しません。また、隠されたメンバーは依然として public です。

    hidden キーワードはカスタムクラスと共に Windows PowerShell 5.0 で導入
    されました。

    例

    次の例は、クラス定義で hidden キーワードを使用する方法を示します。Car
    クラスのメソッド Drive には、Rides というプロパティがあります。これは
    Car クラスで Drive が呼び出された回数を集計するだけのものであり、表示や
    変更を行う必要はありません。この指標はクラスの利用者にとって重要では
    ありません(たとえば、車を買うときに、その車が何回運転されたかを売り手に
    尋ねないのと同じです)。

    クラスの利用者がこのプロパティを変更する必要はほとんどないため、hidden
    キーワードを使用して Get-Member と自動補完の結果からこのプロパティを
    隠すことができます。

    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 パラメーターを
    追加します。結果に、既定で隠されている他のメンバーと共に、隠された 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;}

関連項目
    about_Classes
    about_Language_Keywords
    about_Wildcards
    Get-Member

----
原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP