PowerShell - 类方法中的可选参数

4
在PowerShell函数中,我可以有类似以下的代码:
Function myFunction {
    Param(
        [Parameter(Mandatory=$True)][string]$foo,
        [Parameter(Mandatory=$False)][string]$bar = "whatever"
    )
....
}

但是这似乎仅限于函数 - 是否有类似于方法的东西?

class MyClass {
...
    [void]MethodA {
    Param(
    ....

对我来说不起作用。
解释器抱怨类方法参数列表中缺少'('。

1个回答

5

在大多数其他脚本语言中,向类添加方法的方式与此类似。您可以添加一个块,例如这篇博客文章这里所述,而不是使用[void]MethodA {Param()...}

class MyClass {
    #...
    [void]MethodA ($param) {
        #...
    }
}

由于您的标题提到了可选参数(但您的问题没有),因此需要简要说明一下...

通常情况下,您会为这种情况创建多个签名。这意味着您需要创建一个方法MethodA($arg1, $arg2)和一个委托方法,如MethodA($arg1) {MethodA($arg1, $null)}


我该如何添加真正的可选参数? - Đonny
2
@Đonny 可选参数[不幸地]变成了强制性的。(https://github.com/PowerShell/PowerShell/issues/9701) - Ash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接