Ist es möglich, ein Ereignis an ein PSObject anzuhängen?

Angenommen, ich habe ein PsObjekt wie das folgende:

$o=New-Object PSObject -Property @{"value"=0}
Add-Member -MemberType ScriptMethod -Name "Sqrt" -Value {
    echo "the square root of $($this.value) is $([Math]::Round([Math]::Sqrt($this.value),2))"
} -inputObject $o

Ist es möglich, ein Ereignis anzuhängen, damit die Methode Sqrt () ausgeführt wird, wenn sich das Wertattribut ändert? dh:

PS>$o.value=9

wird herstellen

the square root of 9 is 3
aktualisieren

Laut @Richard-Antwort ist dies das Arbeitsrezept:

$o=New-Object PSObject -property @{"_val"=1}
Add-Member -MemberType ScriptMethod -Name "Sqrt" -Value {
    write-host "the square root of $($this._val) is $([Math]::Round([Math]::Sqrt($this._val),2))"
} -inputObject $o


Add-Member -MemberType ScriptProperty -Name 'val' -Value{ $this._val }  -SecondValue { $this._val=$args[0];$this.Sqrt() } -inputObject $o

Antworten auf die Frage(1)

Ihre Antwort auf die Frage