Sobrecarga de operadores é um recurso que permite alterar o significado dos operadores de C#, cuja ideia é transformar expressões complexas em expressões mais claras e intuitivas. Neste post veja sobrecarga de operadores em C#.

Por exemplo, a expressão total.somar(val1, val2); poderia ser alterada para uma mais intuitiva, como total = val1 + val2;.

Assim, objetos podem ser usados em uma expressão, da mesma forma que variáveis em uma expressão aritmética.

Sobrecarga de operadores unários

Sobrecarga para operadores que atuam sobre um operando:

public static retorno operator op(parm) {
   
   //comandos
}

retorno: Tipo do valor a ser retornado pelo método operator. Pode ser de qualquer tipo, mas normalmente é do tipo classe/estrutura que sobrecarrega o operador.

op: Operador a ser sobrecarregado.

parm: Parâmetro do operador op. O sue tipo deve ser classe/estrutura que faz a sobrecarga e não pode usar os modificadores ref e out.

Sobrecarga de operadores binários

Sobrecarga para operadores que atuam sobre dois operandos.

public static retorno operator op(parm1, parm2) {
      //comandos
}

retorno: Tipo do valor a ser retornado pelo método operator. Pode ser de qualquer tipo, mas normalmente é do tipo classe/estrutura que sobrecarrega o operador.

op: Operador a ser sobrecarregado.

parm1, parm2: Parâmetros do operador op que não podem usar modificadores ref e out. Pelo menos um dos parâmetros deve ser do tipo classe/estrutura que faz a sobrecarga.

//Método operator. Sobrecarga do operador binário "*"
public static Teste operator *(Teste vetor1, int numero) {

   Teste VetorRes = new Teste();

   for (int i = 0; i < VetorRes.vetor.Length; i++) {
	 VetorRes.vetor[i] = vetor1.vetor[i] * numero;
	 return VetorRes;
   }
    
   ...
   
static void Main(string[] args) {

   Teste obj1 = new Teste();
   Teste obj2;
   obj1.vetor[0] = 10;
   obj1.vetor[1] = 20;
   obj1.Exibe();
   obj2 = obj1 * 5; // chama o método operator() 
         
   ...
     
}
Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: | | |

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *