我想知道是否存在一种在.Net框架类库的类中添加方法的方法。
比如说我想创建一个在IsEmpty
类中添加System.Windows.Forms.Clipboard
函数的类/模块,这可能吗?如果没有,也许我可以在一个中完成My
命名空间? (My.Computer.clipboard
)
我有什么选择来代替整个班级? (这应该是手工制作的?那是疯了)
答案 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
类,作为内置类的附录/兄弟。