在PowerShell中使用多个参数实现自己的方法

Sh4*_*4pe 2 powershell object

我想用一个带有多个参数的方法创建一个自定义对象.我已经设法添加一个带一个参数的方法,它似乎工作:

function createMyObject () {
    $instance = @{}

    add-member -in $instance scriptmethod Foo {
        param( [string]$bar = "default" )
        echo "in Foo( $bar )"    
    }
    $instance
}
$myObject = createMyObject
Run Code Online (Sandbox Code Playgroud)

但每次我尝试通过简单地[string]$secondParam在方法的param-section中添加另一个子句来添加一个带有两个参数的方法时,调用

$myObject.twoParamMethod( "firstParam", "secondParam" )
Run Code Online (Sandbox Code Playgroud)

不起作用.我语言中的错误消息表示"无法将索引应用于NULL数组".

任何提示?谢谢!

Hun*_*son 6

这样的东西似乎有效(至少在PowerShell v4中)......

add-member -in $instance scriptmethod Baz {
    param( [string]$bar = "default", [string]$qux = "auto" )
    echo "in Baz( $bar, $qux )"
}
Run Code Online (Sandbox Code Playgroud)

为了打电话,我做了:

[PS] skip-matches> $myObject.Baz("Junk","Stuff")
in Baz( Junk, Stuff )

[PS] skip-matches> $myObject.Baz()
in Baz( default, auto )
Run Code Online (Sandbox Code Playgroud)