Share via


Procedimentos do operador (Visual Basic)

Um procedimento de operador é uma série de declarações Visual Basic que definem o comportamento de um operador padrão (tais como *, <>, ou And) em uma classe ou estrutura que você definiu. Isto também é chamado de sobrecarga de operador .

Quando Definir Procedimentos de Operador

Quando definir uma classe ou estrutura, você pode declarar variaveis para que sejam do tipo da classe ou da estrutura. Às vezes, tal variável precisa participar em uma operação como parte de uma expressão. Para fazer isto, é necessário que seja um operando de um operador.

Visual Basicdefine operadores somente em seu tipo de dados fundamental. Você pode definir o comportamento de um operador quando um ou ambos os operandos são do tipo da sua classe ou estrutura.

Para obter mais informações, consulte Instrução Operator.

Tipos de Procedimento de Operador

Um operador de procedimento pode ser de um dos tipos seguintes:

  • Uma definição de um operador unário onde o argumento é do tipo da sua classe ou estrutura.

  • Uma definição de um operador binário onde pelo menos um dos argumentos é do tipo da sua classe ou estrutura.

  • Uma definição de um operador de conversão onde o argumento é do tipo da sua classe ou estrutura.

  • Uma definição de um operador de conversão que retorna o tipo da sua classe ou estrutura.

Operadores de conversão são sempre unários, e você sempre usa CType como o operador que você está definindo.

Sintaxe da Declaração

A sintaxe para declarar um operador de procedimento é a seguinte:

Public Shared [Widening | Narrowing] Operatoroperatorsymbol (operand1 [, operand2]) As datatype

' Statements of the operator procedure.

End Operator

Você usa a palavra chave Widening ou Narrowing somente para um operador de conversão de tipo. O símbolo do operador é sempre Função CType (Visual Basic) para operador de conversão de tipo.

Você declara dois operandos para definir um operador binário, e declara um operando para definir um operador unário, incluindo um operador de conversão de tipo. Todos operandos devem ser declarados ByVal.

Você declara cada operando da mesma forma que declara parâmetros para Subprocedimentos (Visual Basic).

Tipo de dados

Como você está definindo um operador em uma classe ou estrutura que você definiu, pelo menos um dos operandos deve ser do tipo de dado da classe ou estrutura. Para o operador de conversão de tipo, tanto o operando quanto o tipo de retorno devem ser do tipo de dado da classe ou estrutura.

Para mais detalhes, consulte Instrução Operator.

Sintaxe de Chamada

Você invoca um procedimento de operador de maneira implícita, ao utilizar o simbolo do operador em uma expressão. Você fornece os operandos da mesma forma que você faz para operadores pré-definidos.

A sintaxe para uma chamada implícita para um procedimento de operador é a seguinte:

Dim testStruct As nomedaestrutura

Dim testNewStruct As structurename = testStruct operatorsymbol 10

Ilustração de Declaração e Chamada

A seguinte estrutura armazena uma valor inteiro sinalizado de 128 bits constituinte de partes de alta-ordem e baixa-ordem. Define o operador + para somar dois valores veryLong e gerar como resultado um valor veryLong .

Public Structure veryLong
    Dim highOrder As Long 
    Dim lowOrder As Long 
    Public Shared Operator +(ByVal v As veryLong, 
                             ByVal w As veryLong) As veryLong
        Dim sum As New veryLong
        sum = v
        Try
            sum.lowOrder += w.lowOrder
        Catch ex As System.OverflowException
            sum.lowOrder -= (Long.MaxValue - w.lowOrder + 1)
            sum.highOrder += 1
        End Try
        sum.highOrder += w.highOrder
        Return sum
    End Operator 
End Structure

O exemplo a seguir mostra uma chamada típica para o operador + definido em veryLong.

Dim v1, v2, v3 As veryLong
v1.highOrder = 1
v1.lowOrder = Long.MaxValue
v2.highOrder = 0
v2.lowOrder = 4
v3 = v1 + v2

Para maiores informações e exemplos, acesseSobrecarga de Operador no Visual Basic 2005.

Consulte também

Tarefas

Como definir um operador (Visual Basic)

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)

Referência

Instrução Operator

Conceitos

Procedimentos no Visual Basic

Subprocedimentos (Visual Basic)

Procedimentos de função (Visual Basic)

Procedimentos de propriedade (Visual Basic)

Parâmetros e argumentos de procedimento (Visual Basic)