调用调用自定义类函数的脚本时卡住

时间:2019-10-09 03:25:10

标签: powershell

我有一个带有两个函数Cfun1的自定义类fun2fun2呼叫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()来调用脚本时会有所不同。

0 个答案:

没有答案