2017-05-03 17 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

この「シンタックスシュガーは」場所であなたはしかし

Dim newString = oldString.toTitleCase() 

ようにコードを書くことができ、私はあなたをことを覚えておくことでしょうしたらあなたはVB.NET

Module MyExtensions 

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

でもExtension methodsを書くことができますToTitleCaseメソッドは既にSystem.Globalization.TextInfo名前空間で利用可能です

+0

ありがとうございます。これは本当に素晴らしいです – DragonInCresent

0

あなたの後ろはextension methodsです。

基本的には、System.Stringを拡張することはできませんが、モジュールでサブ関数や関数を作成し、コンパイラに文字列メソッドを "偽"させることができます。

+0

ありがとうございます。これは本当に素晴らしいです – DragonInCresent

関連する問題