如何重载PowerShell内置类的方法

时间:2016-04-20 16:30:56

标签: powershell overloading

我可以重载PowerShell内置类的方法吗?如果是,那怎么样?任何代码示例都会很棒。

基本上,我试图重载Hashtable Dictionary PowerShell对象的Equals方法来进行适当的比较。

我知道您可以在PowerShell中重载cmdlet或函数,以及所采用的最新定义。但我试图重载不是cmdlet或函数,但尝试重载现有类的内置方法。我已经查看了这篇文章:Function overloading in PowerShell

1 个答案:

答案 0 :(得分:6)

好吧,你可以用这种方式从C#代码重载它:

$Source = @"
    class MyHashTable : HashTable
    {
        public override Equals(...) { ... }
    }
"@

Add-Type -TypeDefinition $Source -Language CSharp 

$x = New-Object MyHashTable ...