我想向System.IO.Path Class添加一个函数。
问题是路径不可行。
这样做是不可能的:
Imports System.IO
Public Class Path : Inherits System.IO.Path
End Class
答案 0 :(得分:1)
您可以使用扩展方法。这些似乎是扩展类的功能,但它们之间没有真正的联系。虽然它们确实使编程更方便 http://msdn.microsoft.com/en-us/library/bb384936.aspx
更新:让我们看一个例子。请注意,这些是来自3个文件的片段。
'Noninheritable baseclass
Public NotInheritable Class BaseClass
Function f()
Return 42
End Function
End Class
'Extension
Imports System.Runtime.CompilerServices
Module ExtModule
<Extension()>
Public Sub Print(ByVal bc As BaseClass)
Console.WriteLine(bc.f())
End Sub
End Module
'Usage
Sub Main()
Dim bc As BaseClass
bc = New BaseClass()
bc.Print() 'Calling the extension method
End Sub
它说42
。
答案 1 :(得分:0)
问题不在于继承“系统”类,而在于NonInheritable
类,这是设计使然并且顾名思义,不可继承。
为什么要继承它呢?您扩展(继承)一个类,以便向其实例添加行为。在Path的情况下,没有实例,Path只是一个“容器”,用于对处理文件系统路径操作的类似方法进行分组。
您应该为您的其他方法或您自己的NotInheritable类创建Module。