2

私が見つけた検索結果のほとんどは、私が探しているものの反対であることが判明したので、ここに私の質問があります:

システムタイプを独自のカスタムタイプに変換しようとしていますが、前述したように、検索結果が効果的でなく、探しているものとは逆になります。

「mystringgoeshere」の文字列と次のようなクラスがあるとします。

Class MyStringType

    Dim str As String

End Class
Dim s As MyStringType = "mystringgoeshere"

そして、このエラーが発生します{タイプ'String'の値を'Project1.MyStringType'に変換できません。}

これを実現する方法がわからないため、まだコードはありませんが、基本的には、上記のコードブロックにあるようなメソッドを使用して、「s」オブジェクトの「str」文字列を設定します。「new(dataas String)」サブルーチンを使用してみましたが、試したものでは機能しません。

何か案は?thx〜

4

4 に答える 4

4

カスタムタイプの作成に関するこのVBCityの記事を見るそれは拡大演算子を使用しています

最後のリンクから:

拡大変換は実行時に常に成功し、データが失われることはありません。例としては、SingleからDouble、CharからString、および派生型からその基本型があります。

だからこのようなものを試してみてください

Public Class Form1

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        Dim s As MyStringType = "mystringgoeshere"
        Dim s1 As MyStringType = "Hello"
        Dim s2 As MyStringType = s1 + s
    End Sub
End Class

Class MyStringType
    Private _string As String
    Private Sub New(ByVal value As String)
        Me._string = value
    End Sub
    Public Shared Widening Operator CType(ByVal value As String) As MyStringType
        Return New MyStringType(value)
    End Operator
    Public Overrides Function ToString() As String
        Return _string
    End Function
    Public Shared Operator +(ByVal s1 As MyStringType, s2 As MyStringType) As MyStringType
        Dim temp As String = s1._string + s2._string
        Return New MyStringType(temp)
    End Operator
End Class
于 2012-11-07T06:01:37.670 に答える
2
このようにurコードを少し変更するだけです:

クラスMyStringType
    文字列としての薄暗い
    Sub New(ByVal str1 As String)
         str = str
    サブ終了
エンドクラス

Dim s As New MyStringType( "abhi")
于 2012-11-07T06:28:00.470 に答える
0

あなたがすべきことは

Class MyStringType

    Dim str As String

End Class
Dim s As MyStringType 
s.str = "mystringgoeshere"
于 2012-11-07T06:00:20.310 に答える
0

System.Stringをサブクラス化するようです。これはOOPプログラミングの基本です。継承はかなり重要です。

http://en.m.wikipedia.org/wiki/Inheritance_(object-oriented_programming

于 2012-11-07T06:10:42.833 に答える