Sobrecarga de operadores em C#

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() 
         
   ...
     
}

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

Tags:

O seu computador está lento, travando ou dando tela azul… e você não faz ideia do que fazer?

Saiba que isso pode estar te fazendo perder dinheiro — seja com manutenção cara ou oportunidades que você está deixando passar.

Com o Super Técnico 2.0, você aprende na prática como diagnosticar defeitos, montar computadores do zero e fazer upgrades que realmente aumentam o desempenho, mesmo que você esteja começando do absoluto zero.

Você pode usar esse conhecimento para:

✔ Resolver seus próprios problemas sem depender de ninguém
✔ Ganhar dinheiro com manutenção e suporte técnico
✔ Ou até entrar de vez no mercado de TI

Tudo com aulas diretas ao ponto, sem enrolação e focadas no que realmente funciona no dia a dia.

👉 CLIQUE AQUI AGORA e veja todos os detalhes antes que essa oportunidade passe:

Super Técnico 2.0

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação e 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 *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.