概要
新しいクラスを作る(3) ― コンストラクタにて、プライベートフィールドへのアクセスが冗長になることを書きました。色々と考えたのですが、他の場面で使うこともあるかもしれないと思い、外部スクリプトにすることにしました。
ダウンロード
- プライベートフィールドを取得するスクリプト。
Get-PrivateField.ps1 - プライベートフィールドを設定するスクリプト。
Set-PrivateField.ps1 - プライベートメソッドを実行するスクリプト。
Invoke-PrivateMethod.ps1
(「ジェネリック、private、protectedメソッドを実行する」にて、Invoke-PrivateMethod.ps1 の上位互換となる Invoke-Method.ps1 を公開しています。それをお使いください。)
用例
$o に「FMessage」というプライベートフィールドを持つオブジェクトが入っている時、Get-PrivateField および Set-PrivateField は、次のように使います。
PS> Set-PrivateField $o 'FMessage' 'Hello World!'
PS> Get-PrivateField $o 'FMessage'
Hello World!
PS> Get-PrivateField $o 'FMessage'
Hello World!
また、$o が、「Add」という int 型の引数を 2 つ取るメソッドを持っている時、Invoke-PrivateMethod は、次のように使います。
PS> Invoke-PrivateMethod $o 'Add' (3, 5)
8
8
これらは、静的フィールドおよび静的メソッドに対しても使うことができます。