Maîtriser la surcharge de constructeurs en C#
Maîtriser la surcharge de constructeurs en C#
Découvrez comment concevoir des classes flexibles en C# en surchargeant les constructeurs — en variant le nombre, les types et l'ordre des paramètres — avec des exemples pratiques.
La surcharge de constructeurs en C# reflète la surcharge de méthodes : une classe peut déclarer plusieurs constructeurs qui partagent le même nom mais diffèrent par leur signature. Le compilateur sélectionne le constructeur approprié en fonction des arguments fournis lors de l'instanciation d'un objet.
- Différent nombre de paramètres
- Différents types de paramètres
- Différent ordre des paramètres
Avant de plonger dans la surcharge, assurez-vous de comprendre les constructeurs C# de base.
1. Variation du nombre de paramètres
Vous pouvez surcharger un constructeur en fournissant différents nombres d'arguments.
class Voiture {
// Constructeur sans paramètre
Voiture() { ... }
// Constructeur à un paramètre
Voiture(string marque) { ... }
// Constructeur à deux paramètres
Voiture(string marque, int prix) { ... }
}
Dans cette classe Voiture, les trois constructeurs coexistent car chaque signature est distincte. Le compilateur choisit le constructeur correspondant à l'exécution selon le nombre d'arguments.
Exemple : Surcharge par nombre de paramètres
using System;
namespace SurchargeConstructeur {
class Voiture {
// Constructeur sans paramètre
Voiture() {
Console.WriteLine("Constructeur Voiture");
}
// Constructeur à un paramètre
Voiture(string marque) {
Console.WriteLine("Constructeur Voiture avec un paramètre");
Console.WriteLine("Marque : " + marque);
}
static void Main(string[] args) {
// Appelle le constructeur sans paramètre
Voiture voiture = new Voiture();
Console.WriteLine();
// Appelle le constructeur à un paramètre
Voiture voiture2 = new Voiture("Bugatti");
Console.ReadLine();
}
}
}
Sortie
Constructeur Voiture Constructeur Voiture avec un paramètre Marque : Bugatti
Le compilateur invoque le constructeur approprié en fonction des arguments fournis.
2. Types de paramètres différents
Les constructeurs peuvent aussi être surchargés quand ils acceptent le même nombre de paramètres mais de types différents.
class Voiture {
Voiture(string marque) { ... }
Voiture(int prix) { ... }
}
Ici, les deux constructeurs acceptent un seul argument, mais les types — string versus int — les différencient.
Exemple : Surcharge par type de paramètre
using System;
namespace SurchargeConstructeur {
class Voiture {
// Constructeur avec une string
Voiture(string marque) {
Console.WriteLine("Marque : " + marque);
}
// Constructeur avec un int
Voiture(int prix) {
Console.WriteLine("Prix : " + prix);
}
static void Main(string[] args) {
Voiture voiture = new Voiture("Lamborghini");
Console.WriteLine();
Voiture voiture2 = new Voiture(50000);
Console.ReadLine();
}
}
}
Sortie
Marque : Lamborghini Prix : 50000
3. Changement de l'ordre des paramètres
Quand les constructeurs ont le même nombre et types de paramètres, vous pouvez encore surcharger en réorganisant leur ordre.
class Voiture {
Voiture(string marque, int prix) { ... }
Voiture(int vitesse, string couleur) { ... }
}
Les signatures diffèrent car la séquence des types est distincte.
Exemple : Surcharge par ordre des paramètres
using System;
namespace SurchargeConstructeur {
class Voiture {
// String d'abord, puis int
Voiture(string marque, int prix) {
Console.WriteLine("Marque : " + marque);
Console.WriteLine("Prix : " + prix);
}
// Int d'abord, puis string
Voiture(int vitesse, string couleur) {
Console.WriteLine("Vitesse : " + vitesse + " km/h");
Console.WriteLine("Couleur : " + couleur);
}
static void Main(string[] args) {
Voiture voiture = new Voiture("Bugatti", 50000);
Console.WriteLine();
Voiture voiture2 = new Voiture(60, "Rouge");
Console.ReadLine();
}
}
}
Sortie
Marque : Bugatti Prix : 50000 Vitesse : 60 km/h Couleur : Rouge
Langue C
- Constructeurs C# : Types, exemples et patterns avancés
- Comprendre les classes imbriquées C# : Définition, utilisation et héritage
- Maîtriser la surcharge de méthodes en C# : Concepts, exemples et bonnes pratiques
- Maîtriser la surcharge d'opérateurs en Python : guide pratique
- Maîtriser les constructeurs Java : Types, utilisation et exemples pratiques
- Constructeurs d'enum Java expliqués avec exemple pratique
- Comprendre le Liquide de Refroidissement Moteur : Rôle, Types et Entretien
- Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
- Surcharge de Constructeur en Java – Expliqué avec Exemples de Code Pratiques