2017-05-03 29 views
0

我想擴展字符串功能,並添加我自己的功能到模塊。但我發現字符串類是不可繼承的。擴展字符串類的功能沒有繼承

有什麼方法可以擴展這個類。我發現是這樣的:

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 

,該功能在同級別!

有什麼想法嗎?

回答

1

你可以寫Extension methods也VB.NET

Module MyExtensions 

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

在此之後「語法糖」是在地方,你可以寫你的代碼

Dim newString = oldString.toTitleCase() 

不過,我記得你, ToTitleCase方法已經在System.Globalization.TextInfo命名空間

+0

謝謝。這真是太棒了 – DragonInCresent

0

你之後是extension methods

基本上,你不能擴展System.String,但你可以在模塊中創建子或函數,並且讓編譯器「假」它們是字符串方法。

+0

謝謝。這真是太棒了 – DragonInCresent