Como definir um operador de conversão (Visual Basic)
Se você tiver definido uma classe ou estrutura, você pode definir um operador de conversão de tipos entre o tipo de sua classe ou estrutura e outro tipo de dados (como Integer,Double, ou String) .
Defina a conversão de tipos como um procedimento Função CType (Visual Basic) dentro da classe ou estrutura. Todos os procedimentos de conversão devem ser Public Shared, e cada um deles deve especificar ou Widening (Visual Basic) ou Narrowing (Visual Basic).
Definir um operador em uma classe ou estrutura também é chamado de sobrecarregar o operador.
Exemplo
O exemplo a seguir define os operadores de conversão entre uma estrutura chamada digit e um 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
Você pode testar a estrutura digit com o seguinte código:
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
Consulte também
Tarefas
Como definir um operador (Visual Basic)
Como chamar um procedimento de operador (Visual Basic)
Como usar uma classe que define operadores (Visual Basic)
Como declarar uma estrutura (Visual Basic)
Referência
Conceitos
Procedimentos do operador (Visual Basic)