プロパティの定義
プロパティは、次のように定義します。
Property <型> <名前> <実装>
<型>は、Type で、<名前> は、string、<実装>は ScriptBlock です。<実装> の中には Get-Value と Set-Value を定義します。$args[0] には、オブジェクトのインスタンスが格納されており、Set-Value 中の $args[1] には、プロパティに設定すべき値が格納されています。次の用例をご覧ください。
PS> New-Class Class7 {
>> Field private string FMessage
>> Property string Message {
>> Get-Value {
>> Get-PrivateField $args[0] FMessage
>> }
>> Set-Value {
>> Set-PrivateField $args[0] FMessage $args[1]
>> }
>> }
>> }
>> |
| NameSpace |
Name |
BaseType |
| --------- |
---- |
-------- |
| |
Class7 |
System.Object |
| |
PS> $o = New-Object Class7
PS> $o.Message = 'Hello World!'
PS> $o.Message
Hello World! |
Set-Value が無い場合、プロパティは読み取り専用になります。
PS> New-Class Class8 {
>> Property string Message {
>> Get-Value { '読み取り専用!' }
>> }
>> }
>> |
| NameSpace |
Name |
BaseType |
| --------- |
---- |
-------- |
| |
Class8 |
System.Object |
PS> $o = New-Object Class8
PS> $o.Message = 'Hello World!'
"Message" は ReadOnly のプロパティです。 発生場所 行:1 文字:4 + $o.M <<<< essage = 'Hello World!'
PS> $o.Message
読み取り専用! |
ダウンロード
上記用例を実行するには、以下のスクリプトが必要です。