Любая причина не бросать ArgumentException в powers param () блок? - PullRequest
6 голосов
/ 26 марта 2011

Я искал способ сделать необходимые параметры в powershell, когда обнаружил это сообщение в блоге , предлагая мне сделать следующее:

param(
    [string] $ObjectName = $(Throw "Parameter -ObjectName must be set to the name of a database object")
);

После некоторого переваривания я пришел к выводу, что, возможно, было бы лучше выбросить ArgumentException вместо строки:

param(
    [string] $ObjectName = $(Throw New-Object System.ArgumentException "Parameter -ObjectName must be set to the name of a database object","ObjectNamt")
);

Теперь с точки зрения C # последнее будет лучше. Есть ли причина, по которой эта практика не переводится в powershell?

1 Ответ

10 голосов
/ 26 марта 2011

В PowerShell 2.0 вы можете пометить параметр как Manadatory и позволить PowerShell сделать всю работу за вас:

Param(
    [Parameter(Mandatory=$true,
        Position=0,
        HelpMessage='ObjectName must be set to the name of a database object')]
    [string]
    $ObjectName
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...