Nasıl yapılır: Bir Dönüşüm İşleci Tanımlama (Visual Basic)

Bir sınıf veya yapı tanımladıysanız, sınıf veya yapı türü ve başka bir veri türü arasında tür dönüştürme işleci tanımlayabilirsiniz (gibi Integer, Double, veya String).

Tür dönüştürmesi olarak tanımlayan bir CType İşlevi (Visual Basic) yordamı sınıf veya yapı içinde.Tüm dönüştürme yordamları olmalıdır Public Shared, her birini belirtmeniz gerekir ve Genişletme (Visual Basic) veya Daraltma (Visual Basic).

Bir işleç bir sınıf veya yapı tanımlama olarak da adlandırılır aşırı işleci.

Örnek

Aşağıdaki örnek olarak adlandırılan bir yapı arasında dönüştürme işleçleri tanımlar digit ve bir Byte.

Public Structure digit
Private dig As Byte 
    Public Sub New(ByVal b As Byte)
        If (b < 0 OrElse b > 9) Then Throw New System.ArgumentException(
            "Argument outside range for Byte")
        Me.dig = b
    End Sub 
    Public Shared Widening Operator CType(ByVal d As digit) As Byte 
        Return d.dig
    End Operator 
    Public Shared Narrowing Operator CType(ByVal b As Byte) As digit
        Return New digit(b)
    End Operator 
End Structure

Yapısını test edebilirsiniz digit yerine aşağıdaki kodu.

Public Sub consumeDigit()
    Dim d1 As New digit(4)
    Dim d2 As New digit(7)
    Dim d3 As digit = CType(CByte(3), digit)
    Dim s As String = "Initial 4 generates " & CStr(CType(d1, Byte)) &
          vbCrLf & "Initial 7 generates " & CStr(CType(d2, Byte)) &
          vbCrLf & "Converted 3 generates " & CStr(CType(d3, Byte))
    Try 
        Dim d4 As digit
        d4 = CType(CType(d1, Byte) + CType(d2, Byte), digit)
    Catch e4 As System.Exception
        s &= vbCrLf & "4 + 7 generates " & """" & e4.Message & """" 
    End Try 
    Try 
        Dim d5 As digit = CType(CByte(10), digit)
    Catch e5 As System.Exception
        s &= vbCrLf & "Initial 10 generates " & """" & e5.Message & """" 
    End Try
    MsgBox(s)
End Sub

Ayrıca bkz.

Görevler

Nasıl yapılır: Bir İşleci Tanımlama (Visual Basic)

Nasıl yapılır: Bir İşleç Yordamı Çağırma (Visual Basic)

Nasıl yapılır: İşleçleri Tanımlayan Bir Sınıf Kullanma (Visual Basic)

Nasıl yapılır: Bir Yapıyı Bildirme (Visual Basic)

Başvuru

Operator Deyimi

Structure Yapısı

Kavramlar

İşleç Yordamları (Visual Basic)

Örtük ve Açık Dönüştürmeler (Visual Basic)

Genişletme ve Daraltma Dönüşümleri (Visual Basic)