我嘗試向我的函數引入一個可選的字符串參數。 Based on this thread should[AllowNull()]
這樣做,但PowerShell仍然使用空字符串填充我的參數(使用PowerShell版本5.1.14393.206)。可選字符串參數(應爲NULL)
下面的函數說明了這個問題:
function Test-HowToManageOptionsStringParameters() {
Param(
[Parameter(Mandatory)]
[int] $MandatoryParameter,
[Parameter()]
[AllowNull()]
[string] $OptionalStringParameter = $null
)
if ($null -eq $OptionalStringParameter) {
Write-Host -ForegroundColor Green 'This works as expected';
} else {
Write-Host -ForegroundColor Red 'Damit - Parameter should be NULL';
}
}
爲了品牌認爲更糟糕的是,即使這個代碼不工作(分配$null
進行測試參數),我真的不明白爲什麼這是不工作...
function Test-HowToManageOptionsStringParameters() {
Param(
[Parameter(Mandatory)]
[int] $MandatoryParameter,
[Parameter()]
[AllowNull()]
[string] $OptionalStringParameter = $null
)
$OptionalStringParameter = $null;
if ($null -eq $OptionalStringParameter) {
Write-Host -ForegroundColor Green 'This works as expected';
} else {
Write-Host -ForegroundColor Red 'Damit - Parameter should be NULL';
}
}