C# - Sobrecarga de operadores - I


Hoje vamos recordar o conceito de sobrecarga de operadores na linguagem C#.

Na linguagem C#, podemos sobrecarregar a definição de um operador para tipos personalizados (classe, struct), e, fazemos isso definindo métodos especiais dentro de um tipo personalizado.

Nota: Sobrecarga (Overload)  é a habilidade de poder definir diversas propriedades, métodos ou procedimentos em uma classe com o mesmo nome mas parâmetros diferentes.

Esses métodos ajudam o compilador a distinguir entre os diferentes significados de um operador que produzem resultados diferentes para um tipo diferente.

Os operadores sobrecarregados são funções com nomes especiais, a palavra-chave operator seguida pelo símbolo para o operador que está sendo definido. Um operador sobrecarregado possui um tipo de retorno e uma lista de parâmetros.

Geralmente, em C #, podemos sobrecarregar três tipos de operadores:

1. Operadores Unários (+, -, !, ~, ++, – –)
2. Operadores Binários
(+, -, *, /, %)
3. Operadores de Comparação
(==, !=, =)

Obs: Os operadores de lógica condicional(&&, ||) não podem ser sobrecarregados diretamente nem os operadores de atribuição (+=, -+, *=, /=, %=, =)

Sobrecarga de Operador Unário

O operador Unary opera em um único operando (+, -,!, ++, -, true, false), e , estes são os operadores unários que podem ser sobrecarregados em C#.

Sintaxe:

public static return_type operator op (Type t)
{
       // TODO:
}

static - O método sobrecarregado do operador estático deve ser estático.
operator - é uma palavra-chave usada para definir um método sobrecarregado pelo operador.
op - usa um símbolo especial do operador, descreve qual definição do operador será sobrecarregado, isto é, (+, -, ..).
Type  - o tipo deve ser struct ou class.

Exemplo: Sobrecarga de operador ++

Neste código temos que distância++, é chamado de método operator ++; observe que ele passou seu próprio objeto para o parâmetro operator ++.

A seguir veremos a sobrecarga de operadores binários.

Pegue o código do projeto aqui:   SobrecargaOperadorUniario.txt

E a paz de Deus, que excede todo o entendimento, guardará os vossos corações e os vossos pensamentos em Cristo Jesus. Filipenses 4:7

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti