Maîtriser la surcharge de méthodes en C# : Concepts, exemples et bonnes pratiques
Maîtriser la surcharge de méthodes en C#
Découvrez comment surcharger des méthodes en C#, y compris en modifiant le nombre, les types et l'ordre des paramètres, avec des exemples clairs.
En C#, une classe peut contenir plusieurs méthodes portant le même nom mais ayant des listes de paramètres distinctes — c'est ce qu'on appelle la surcharge de méthodes. Par exemple :
void Afficher() { ... }
void Afficher(int a) { ... }
float Afficher(double a) { ... }
float Afficher(int a, float b) { ... }
Ici, la méthode Afficher() est surchargée. Ces méthodes partagent le même nom mais acceptent des arguments différents.
Note : La surcharge est déterminée uniquement par les listes de paramètres ; les types de retour peuvent différer.
1. En changeant le nombre de paramètres
Vous pouvez surcharger une méthode si le nombre de paramètres diffère.
void Afficher(int a) { ... }
void Afficher(int a, int b) { ... }
Exemple :
using System;
namespace SurchargeMethode {
class Program {
// Méthode avec un paramètre
void Afficher(int a) {
Console.WriteLine("Arguments : " + a);
}
// Méthode avec deux paramètres
void Afficher(int a, int b) {
Console.WriteLine("Arguments : " + a + " et " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.Afficher(100);
p1.Afficher(100, 200);
Console.ReadLine();
}
}
}
Sortie
Arguments : 100 Arguments : 100 et 200
Selon le nombre d'arguments passés, la surcharge appropriée est invoquée.
p1.Afficher(100)appelle la version à un paramètre.p1.Afficher(100, 200)appelle la version à deux paramètres.
2. En changeant les types de données des paramètres
La surcharge fonctionne aussi quand les types de paramètres diffèrent, même si le nombre est le même.
void Afficher(int a) { ... }
void Afficher(string b) { ... }
Exemple :
using System;
namespace SurchargeMethode {
class Program {
// Méthode avec paramètre int
void Afficher(int a) {
Console.WriteLine("Type int : " + a);
}
// Méthode avec paramètre string
void Afficher(string b) {
Console.WriteLine("Type string : " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.Afficher(100);
p1.Afficher("Programiz");
Console.ReadLine();
}
}
}
Sortie
Type int : 100 Type string : Programiz
p1.Afficher(100)appelle la surchargeint.p1.Afficher("Programiz")appelle la surchargestring.
3. En changeant l'ordre des paramètres
Quand la liste de paramètres a les mêmes types et le même nombre, changer leur ordre crée des surcharges distinctes.
void Afficher(int a, string b) { ... }
void Afficher(string b, int a) { ... }
Exemple :
using System;
namespace SurchargeMethode {
class Program {
// Méthode avec int et string
void Afficher(int a, string b) {
Console.WriteLine("int : " + a);
Console.WriteLine("string : " + b);
}
// Méthode avec string et int
void Afficher(string b, int a) {
Console.WriteLine("string : " + b);
Console.WriteLine("int : " + a);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.Afficher(100, "Programmation");
p1.Afficher("Programiz", 400);
Console.ReadLine();
}
}
}
Sortie
int : 100 string : Programmation string : Programiz int : 400
p1.Afficher(100, "Programmation")invoque la surchargeint, string.p1.Afficher("Programiz", 400)invoque la surchargestring, int.
Langue C
- Maîtriser les classes et méthodes abstraites C# : Guide pratique
- Comprendre les classes et méthodes partielles C#
- Maîtriser les classes et méthodes sealed en C# : Quand les utiliser, exemples clairs et sécurité du code
- Maîtriser la surcharge de constructeurs en C#
- Maîtriser la surcharge d'opérateurs en Python : guide pratique
- Comprendre les Tasks Verilog : Fonctions vs Tasks, Syntaxe et Utilisation
- Maîtriser les Tâches d'Affichage Verilog : Débogage et Journalisation Efficaces
- Méthodes C# : définition, appel et utilisation des fonctions
- Maîtriser la surcharge d'opérateurs en C# pour types personnalisés