PowerShell $ null больше не равен null при вызове кода C #

В PowerShell можно определить код C # и выполнить его. Передача $ null в следующую простейшую функцию показывает, что в функцию передается не null

Add-Type -TypeDefinition @"
public static class foo
{
public static void fooo(string a)
{
    if(a!=null)
    {
        System.Console.WriteLine("Not Null. Is '" + a + "'");
    }
}
}
"@ -Language CSharp

Вызов его следующим образом приводит к выводу Not Null. Является ''. Это показывает, что $ null не был нулевым в C #. Такие методы, как «IsNullOrEmpty» или «IsNullOrWhiteSpace», возвращают true, поэтому PowerShell должен неявно преобразовывать $ null в строку.

[foo]::fooo($Null)

Любые идеи, почему это происходит, и если есть лучшее решение, кроме вызова String.IsNullOrEnpty в C #? NB: Это происходит независимо от языка C #, указанного 'Add_Type'. Я использую PowerShell V5.

Ответы на вопрос(1)

Ваш ответ на вопрос