ValidateSet 是 Powershell 5.1 中的一个很棒的功能。不幸的是,您不能在类实例(对象)函数中的参数上使用它。
有没有办法强制使用 ValidateSet?
注意:经过一段时间的研究,我找到了一种方法。希望如果有人在未来遇到同样的问题,我的回答可以有所帮助。如果您有其他方法,请添加您自己的答案。
Class Powershell {
$version
Powershell($profile) {
}
SetVersion($version) { try { [ValidateSet(5, 5.1, "5", "5.1", 7, 7.4, "7", "7.4")]$_version = $version}
catch {
Write-Host "SetVersion IllegalArgumentException version == $version. See method header for list of valid args -ForegroundColor DarkRed
Write-Host "Exiting Script..." -ForegroundColor DarkRed
exit
}
*rest of function*
}
}