Compartilhar via


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)

Referência

Instrução Operator

Instrução Structure

Operador Mod (Visual Basic)

Conceitos

Procedimentos do operador (Visual Basic)