【发布时间】:2020-05-09 09:09:42
【问题描述】:
使用以下示例函数:
Function Test {
param(
[Parameter(Position=0)]
[string]$Optional="some optional string",
[Parameter(Position=1, Mandatory=$true)]
[string]$Required
)
Process { }
}
我希望以下内容是相同的:
Test -Optional "optional" "required"
和
Test "required"
不是,但为什么呢?可选参数不是强制性的,但第二个示例会失败:
无法使用指定的命名参数解析参数集。发出的一个或多个参数不能一起使用或提供的参数数量不足。
如果只指定一个参数,这似乎很自然,因为它需要被指定,所以它是强制参数。
有什么方法可以完成我想做的事情吗?
【问题讨论】:
-
在 C# 中,可选参数必须出现在必需参数之后,因此您的示例/问题可能归因于 CLR。为什么不将可选参数放在最后?
标签: powershell