我想用一个带有多个参数的方法创建一个自定义对象.我已经设法添加一个带一个参数的方法,它似乎工作:
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数组".
任何提示?谢谢!
这样的东西似乎有效(至少在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)