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 um operadordeprocedimento dentro da classe ou estrutura. Tudoos procedimentos deoperador devem ser Public Shared.

Defining an operator on a class or structure is also called overloading the operator.

Exemplo

O exemplo a seguir define o +chamado deoperador para uma estrutura height. A estrutura usa a medida em pés e polegadas de altura. Um polegada é 2,54 centímetros e uma pés é de 12 polegadas. Para garantir que os valores normalizados (polegadas < executa a 12.0), o construtor 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

For more information and examples, see Operator Overloading in 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)

Referência

Instrução Operator

Instrução Structure

Conceitos

Procedimentos de operador (Visual Basic)