alx*_*x9r 1 parameters powershell nullable
请考虑以下代码:
function Test
{
[CmdletBinding()]
param
(
[parameter(Mandatory=$true)]
[AllowNull()]
[String]
$ComputerName
)
process{}
}
Test -ComputerName $null
Run Code Online (Sandbox Code Playgroud)
基于官方文档AllowNull
我期待的$ComputerName
可能是[string]
或$null
.但是,运行上面的代码会导致以下错误:
[14,24:Test]无法将参数绑定到参数'ComputerName',因为它是一个空字符串.
为什么$ComputerName
在这种情况下不传递$ null用于工作?
$null
,当转换为[string]时,不返回空字符串$null
:
[string]$null -eq $null # False
[string]$null -eq [string]::Empty # True
Run Code Online (Sandbox Code Playgroud)
如果你想传递$null
[string]参数,你应该使用[NullString]::Value
:
[string][NullString]::Value -eq $null # True
Test -ComputerName ([NullString]::Value)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3301 次 |
最近记录: |