- 63 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 15:54:24.92 ID:SwtBqNyR0.net]
- どうやらstructを含む値型を参照渡ししても呼び出され側のpowershellでは書き換えられないらしい。
下記のPSParamのclassをstructに変更するとpowershell側ではうまく書き換わってるように見えても、呼び出し側のC#に戻るとbState1はTrueのままとなる。 バグなのかなあ。 Add-Type @" using System; public class Helper { public class PSParam { public bool bState1; public bool bState2; }; public delegate void refAction1(ref PSParam p); public static void CallbackTest(refAction1 proc) { var p = new PSParam(); p.bState1 = true; p.bState2 = true; Console.WriteLine("bState1:{0}", p.bState1); proc(ref p); Console.WriteLine("bState1:{0}", p.bState1); } } "@ [Helper]::CallbackTest2({param([ref]$p); $p.Value.bState1 | Out-Host; $p.Value.bState1 = $false; $p.Value.bState1 |Out-Host; })
|
![](http://yomi.mobi/qr.gif)
|