Tüm bu yanıtların vurgulamadığı şey, bir değeri $ null ile karşılaştırırken, sol tarafa $ null koymanız gerektiğidir, aksi takdirde bir koleksiyon türü değeri ile karşılaştırırken başınız belaya girebilir. Bakınız: https://github.com/nightroman/PowerShellTraps/blob/master/Basic/Comparison-operators-with-collections/looks-like-object-is-null.ps1
$value = @(1, $null, 2, $null)
if ($value -eq $null) {
Write-Host "$value is $null"
}
Yukarıdaki blok (maalesef) yürütülmüştür. Daha da ilginç olan, Powershell'de bir $ değerinin hem $ null olabileceği hem de $ null olamayacağıdır:
$value = @(1, $null, 2, $null)
if (($value -eq $null) -and ($value -ne $null)) {
Write-Host "$value is both $null and not $null"
}
Bu nedenle, bu karşılaştırmaların koleksiyonlarda çalışması için sol tarafa $ null koymak önemlidir:
$value = @(1, $null, 2, $null)
if (($null -eq $value) -and ($null -ne $value)) {
Write-Host "$value is both $null and not $null"
}
Sanırım bu yine Powershell'in gücünü gösteriyor!