Я пытаюсь ввести в свою функцию необязательный строковый параметр. На основании этого потока следует [AllowNull()]
выполнить трюк, но PowerShell по-прежнему заполняет мой параметр пустой строкой (используя PowerShell версии 5.1.14393.206).
Следующая функция иллюстрирует проблему:
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';
}
}