我有一个带有两个函数C
和fun1
的自定义类fun2
。 fun2
呼叫fun1
。我创建了类C
的实例,将其传递到脚本$s
中并调用该脚本。如果脚本$s
仅调用fun1
,则一切正常,我得到了预期的结果'something'
。但是,如果脚本$s
调用fun2
,则脚本将继续运行并且永远不会结束。为什么会卡住?下面是代码。我的powershell版本是5.1。
class C{
[object]fun1(){
return 'something'
}
[object]fun2(){
return $this.fun1()
}
}
$s = {
param($p)
$p.fun2() # the script won't stuck if this line is changed to $p.fun1()
}
[powershell]::Create().AddScript($s).AddParameters(@{ p = [C]::new() }).Invoke()
我尝试使用$s
调用脚本& $s -p ([C]::new())
,并且运行正常。但是我想了解为什么使用[powershell]::Create()
来调用脚本时会有所不同。