Como: Define a Conversion operador
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 CType Function dentro da classe ou estrutura.Todos os procedimentos de conversão devem ser Public Shared, e cada um deles deve especificar ou Widening ou Narrowing.
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: telefonar um procedimento de operador
Como: Usar uma classe que define os operadores
Conceitos
Conversões explícita e implícita
Conversões Ampliadoras e Redutoras