Sobes.tech
Junior

O que é sobrecarga de métodos em C#?

sobes.tech IA

Resposta da IA

A sobrecarga de métodos (Method Overloading) em C# permite definir vários métodos numa mesma classe com o mesmo nome, mas com assinaturas diferentes.

Assinatura do método inclui:

  • Nome do método.
  • Quantidade e tipos de parâmetros na lista de parâmetros.

Não é incluído na assinatura:

  • Tipo de valor de retorno.
  • Modificadores de parâmetros (por exemplo, ref, out).

Exemplo:

// Classe com métodos sobrecarregados
public class Calculator
{
    // Sobrecarga 1: Soma de dois números inteiros
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Sobrecarga 2: Soma de dois números de ponto flutuante (outros tipos de parâmetros)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Sobrecarga 3: Soma de três números inteiros (outro número de parâmetros)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Isto NÃO é sobrecarga: Difere apenas pelo tipo de valor de retorno
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

O compilador determina qual método chamar durante a compilação, com base nos tipos e na quantidade de argumentos passados na chamada. Isto é conhecido como ligação estática (Static Binding) ou ligação precoce (Early Binding).

Vantagens da sobrecarga de métodos:

  • Melhora a legibilidade e facilidade de uso do código.
  • Apresenta operações semelhantes sob um mesmo nome, mas para diferentes tipos de dados ou com conjuntos diferentes de parâmetros de entrada.