Sobes.tech
Junior

Qu'est-ce que la surcharge de méthodes en C#?

sobes.tech IA

Réponse de l'IA

La surcharge de méthodes (Method Overloading) en C# permet de définir plusieurs méthodes dans une même classe avec le même nom, mais avec des signatures différentes.

La signature de la méthode inclut :

  • Le nom de la méthode.
  • La quantité et les types de paramètres dans la liste de paramètres.

Ne est pas inclus dans la signature :

  • Le type de valeur de retour.
  • Les modificateurs de paramètres (par exemple, ref, out).

Exemple :

// Classe avec des méthodes surchargées
public class Calculator
{
    // Surcharge 1 : Addition de deux nombres entiers
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Surcharge 2 : Addition de deux nombres à virgule flottante (autres types de paramètres)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Surcharge 3 : Addition de trois nombres entiers (autre nombre de paramètres)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Ce N'EST PAS une surcharge : Se différencie uniquement par le type de valeur de retour
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Le compilateur détermine quelle méthode appeler lors de la compilation, en se basant sur les types et la quantité d'arguments passés lors de l'appel. Cela est connu sous le nom de liaison statique (Static Binding) ou liaison précoce (Early Binding).

Avantages de la surcharge de méthodes :

  • Améliore la lisibilité et la facilité d'utilisation du code.
  • Présente des opérations similaires sous un même nom, mais pour différents types de données ou avec différents ensembles de paramètres d'entrée.