PowerShell - 独自オブジェクトの作成
PSObjectにプロパティやメソッドを追加していくことで独自のオブジェクトが作成できます。
# Hashでプロパティを追加 $hash = @{name = "Taro"; age = 20} $obj = New-Object PSObject -Property $hash # Add-Memberでプロパティを追加 $obj | Add-Member -MemberType NoteProperty -Name str -Value "Hello" $obj | Add-Member -MemberType ScriptProperty -Name talk ` -Value {Write-Host "$($This.str), My Name is $($This.name)."} # プロパティのgetter/setterを追加 Add-Member -InputObject $obj ` -MemberType ScriptProperty -Name nenrei ` -Value { $this.age } ` -SecondValue { param($age) $This.age = $age } # メソッドを追加 Add-Member -InputObject $obj ` -MemberType ScriptMethod -Name greeting ` -Value { param($str) $This.str = $str } $obj.GetType() # IsPublic IsSerial Name BaseType # -------- -------- ---- -------- # True False PSCustomObject System.Object $obj.name # Taro $obj.age # 20 $obj.str # Hello $obj.talk # Hello, My Name is Taro. # プロパティを直接変更 $obj.name = "Jiro" $obj.talk # Hello, My Name is Jiro. # プロパティを直接変更 $obj.age = 25 $obj.age # 25 # プロパティsetterで変更 $obj.nenrei = 30 $obj.nenrei # 30 # プロパティをメソッドで変更 $obj.greeting("Good Morning") $obj.talk # Good Morning, My Name is Jiro.