Sobes.tech
Junior

Cos'è il sovraccarico di metodi in C#?

sobes.tech AI

Risposta dell'AI

L'overloading dei metodi (Method Overloading) in C# consente di definire più metodi in una stessa classe con lo stesso nome, ma con firme diverse.

La firma del metodo include:

  • Il nome del metodo.
  • La quantità e i tipi di parametri nella lista dei parametri.

Non include nella firma:

  • Il tipo di valore di ritorno.
  • I modificatori dei parametri (ad esempio, ref, out).

Esempio:

// Classe con metodi sovraccarichi
public class Calculator
{
    // Sovraccarico 1: Somma di due numeri interi
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Sovraccarico 2: Somma di due numeri con virgola mobile (altri tipi di parametri)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Sovraccarico 3: Somma di tre numeri interi (altro numero di parametri)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Questo NON è sovraccarico: differisce solo per il tipo di valore di ritorno
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Il compilatore determina quale metodo chiamare durante la compilazione, in base ai tipi e alla quantità di argomenti passati durante la chiamata. Questo è noto come binding statico (Static Binding) o binding precoce (Early Binding).

Vantaggi dell'overloading dei metodi:

  • Migliora la leggibilità e l'usabilità del codice.
  • Presenta operazioni simili sotto un unico nome, ma per diversi tipi di dati o con set diversi di parametri di input.