Powershell - необязательный параметр в методе класса - PullRequest
0 голосов
/ 08 октября 2018

В функциях powershell у меня может быть что-то вроде

Function myFunction {
    Param(
        [Parameter(Mandatory=$True)][string]$foo,
        [Parameter(Mandatory=$False)][string]$bar = "whatever"
    )
....
}

Но это кажется ограниченным функциями - есть ли что-то похожее для метода?

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

не работает для меня.
Интерпретатор жалуется на отсутствие '(' в списке параметров метода класса.

1 Ответ

0 голосов
/ 08 октября 2018

Добавление методов в классы работает так же, как и в большинстве других языков сценариев, которые можно знать.Вместо [void]MethodA {Param()...} вы можете добавить блок, как описано в этом сообщении в блоге или здесь :

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

Поскольку в вашем заголовке указаны необязательные параметры (ноВаш вопрос не имеет) короткое слово об этом ...

Обычно для таких случаев требуется несколько подписей.Это означает, что вы создаете метод MethodA($arg1, $arg2) и делегирующий метод, например MethodA($arg1) {MethodA($arg1, $null)}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...