将方法添加到VB.Net中的.Net类库的类?

时间:2014-11-02 05:48:48

标签: .net vb.net winforms class

我想知道是否存在一种在.Net框架类库的类中添加方法的方法。

比如说我想创建一个在IsEmpty类中添加System.Windows.Forms.Clipboard函数的类/模块,这可能吗?如果没有,也许我可以在一个中完成My命名空间? (My.Computer.clipboard

我有什么选择来代替整个班级? (这应该是手工制作的?那是疯了)

1 个答案:

答案 0 :(得分:3)

您正在寻找扩展方法:http://msdn.microsoft.com/en-us/library/bb384936.aspx

  

扩展方法只能是Sub程序或Function程序。必须使用扩展属性<Extension()>标记所有扩展方法。扩展方法定义中的第一个参数指定方法扩展的数据类型。

以下是一个简短的例子。 (公平警告,我是C#开发人员,但我认为这是正确的VB语法。)

Imports System.Runtime.CompilerServices

Module MyExtensions

    <Extension()> 
    Public Sub MyFunction(ByVal obj As TypeToAddFunctionalityTo)
        ' functionality here
    End Sub 

End Module

请注意,对于System.Windows.Forms.Clipboard类,特别是扩展方法没有任何帮助。扩展方法允许将函数添加到实例类型。对于静态使用的类,例如Clipboard,您将不会有任何实例。

此外,您无法继承Clipboard类,因为它被定义为NotInheritable。创建一个包装类是可能的,但是,我建议只创建一个静态MyClipboardUtils类,作为内置类的附录/兄弟。