扩展字符串类函数而不继承

时间:2017-05-03 07:35:07

标签: string vb.net oop

我正在考虑扩展字符串函数并将自己的函数添加到模块中。但我发现字符串类是不可继承的。

有没有办法扩展课程。我找到了类似的东西:

Class MyStringType
    Dim str As String
   function toTitleCase()
     'return titlecae
   end function
End Class

Dim s As MyStringType 
s.str = "mystringgoeshere"

但这并没有以正确的方式延伸,它将导致:

S.Str.normalStringFunctions
S.MyOwnFunctionsHere

结果,功能不在同一级别!!

任何想法?

2 个答案:

答案 0 :(得分:1)

您也可以在VB.NET中编写Extension methods

Module MyExtensions

    <Extension()> 
    Public Sub toTitleCase(input As String)
        ....
    End Sub
End Module

在这个“语法糖”到位后,您可以将代码编写为

Dim newString = oldString.toTitleCase()

但是,我要记住,System.Globalization.TextInfo命名空间中已经提供了ToTitleCase方法

答案 1 :(得分:0)

你所追求的是extension methods

基本上,你不能扩展System.String,但你可以在模块中创建子函数或函数,并使编译器“假”它们是字符串方法。