PowerShell和$ null作为方法参数

时间:2014-07-14 15:12:33

标签: c# .net powershell

PowerShell $null是否等同于.NET null?我有一个场景,其中我必须从PowerShell调用.NET方法并传递null作为方法参数。截至目前,我在方法调用上遇到了一些与程序集加载相关的错误。我想知道$null是否是罪魁祸首。另外,如果您知道使用PowerShell中的null参数调用.NET方法的正确方法,请分享。

方法签名:

void SetUp(IKernel kernel, Action<IBindingInSyntax<object>> obj)

由于

1 个答案:

答案 0 :(得分:3)

PowerShell将它的$ null转换为.NET函数调用中的null。

以身作则证明。

Add-Type -TypeDefinition @"
public static class Foo
{
    public static bool IsNull(object o)
    {
        return o == null;
    }
}
"@ -Language CSharp

[Foo]::IsNull($null)

[Foo]::IsNull("string")

输出:

True
False

$ null 包含对对象的空引用,难怪它只是有效,即使它们是两个不同的东西。