O PowerShell $ null não é mais nulo ao chamar o código C #

No PowerShell, é possível definir o código C # e executá-lo. Passar $ null para a seguinte função mais simples mostra que not null é passado para a função

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

Chamar da seguinte maneira leva à saída Not Null. É ''. Isso mostra que $ null não era nulo em c #. Métodos como 'IsNullOrEmpty' ou 'IsNullOrWhiteSpace' retornam true, portanto, o PowerShell deve ter implicitamente convertido o $ null em uma string.

[foo]::fooo($Null)

Alguma idéia de por que isso está acontecendo e se houver uma correção melhor além de chamar String.IsNullOrEnpty em C #? Nota: isso acontece independentemente do idioma C # especificado 'Add_Type'. Estou usando o PowerShell V5.

questionAnswers(1)

yourAnswerToTheQuestion