Sdílet prostřednictvím


Postupy: Definice operátora převodu (Visual Basic)

Pokud jste definovali třídy nebo struktury, můžete definovat pomocí operátoru typ převodu mezi typ třídy nebo struktury a jiný typ dat (například Integer, Double, nebo String).

Definovat typ převodu, jako CType – funkce (Visual Basic) postupu v rámci třídy nebo struktury.Všechny postupy převodu musí být Public Shared, a každá z nich je nutné zadat buď Rozšíření (Visual Basic) nebo Narrowing (Visual Basic).

Definování třídy nebo struktury operátor se také nazývá přetížení operátor.

Příklad

Následující příklad definuje operátory převodu mezi struktuře nazvané digit a 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

Můžete vyzkoušet strukturu digit s následujícím kódem.

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

Viz také

Úkoly

Postupy: Definice operátora (Visual Basic)

Postupy: Volání procedury operátora (Visual Basic)

Postupy: Použití třídy, která definuje operátory (Visual Basic).

Postupy: Definice struktury (Visual Basic)

Referenční dokumentace

Operator – příkaz

Structure – příkaz

Koncepty

Procedury operátoru (Visual Basic)

Implicitní a explicitní převody (Visual Basic)

Rozšíření a zúžení převodů (Visual Basic)