Como definir um operador (Visual Basic)
Se você tiver definido uma classe ou estrutura, você pode definir o comportamento do operador padrão (como *, <>, ou And) quando um ou ambos dos operandos é do tipo de sua classe ou estrutura.
Defina o operador padrão como umprocedimento de operadordentro da classe ou estrutura. Todos os procedimentos do operador devem ser PublicShared.
Definir um operador em uma classe ou estrutura também é chamado de sobrecarregar o operador.
Exemplo
O exemplo a seguir define o +chamado de operador para uma estrutura height. A estrutura usa alturas medidas em pés e polegadas. Um polegada é 2,54 centímetros e um pés é de 12 polegadas. Para garantir que os valores normalizados (polegadas < executa a 12.0), o construtor de módulo 12 aritmética. O + operador usa o construtor para gerar valores normalizados.
Public Shadows Structure height
' Need Shadows because System.Windows.Forms.Form also defines property Height.
Private feet As Integer
Private inches As Double
Public Sub New(ByVal f As Integer, ByVal i As Double)
Me.feet = f + (CInt(i) \ 12)
Me.inches = i Mod 12.0
End Sub
Public Overloads Function ToString() As String
Return Me.feet & "' " & Me.inches & """"
End Function
Public Shared Operator +(ByVal h1 As height,
ByVal h2 As height) As height
Return New height(h1.feet + h2.feet, h1.inches + h2.inches)
End Operator
End Structure
Você pode teste a estruturade height com o código a seguir.
Public Sub consumeHeight()
Dim p1 As New height(3, 10)
Dim p2 As New height(4, 8)
Dim p3 As height = p1 + p2
Dim s As String = p1.ToString() & " + " & p2.ToString() &
" = " & p3.ToString() & " (= 8' 6"" ?)"
Dim p4 As New height(2, 14)
s &= vbCrLf & "2' 14"" = " & p4.ToString() & " (= 3' 2"" ?)"
Dim p5 As New height(4, 24)
s &= vbCrLf & "4' 24"" = " & p5.ToString() & " (= 6' 0"" ?)"
MsgBox(s)
End Sub
Para maiores informações e exemplos, acesseSobrecarga de Operador no Visual Basic 2005.
Consulte também
Tarefas
Como definir um operador de conversão (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)