Comprendre les classes et méthodes partielles C#
Comprendre les classes et méthodes partielles C#
Cet article explique comment et pourquoi les développeurs C# utilisent les classes partielles et les méthodes partielles pour gérer de grandes bases de code, collaborer efficacement et optimiser la compilation.
Quand plusieurs développeurs travaillent sur une seule classe extensive, ou quand vous avez besoin de fusionner du code écrit à la main avec du code généré par des outils comme Visual Studio, le mot-clé partial de C# offre une solution propre.
Qu'est-ce qu'une classe partielle ?
Une classe partielle vous permet de diviser la définition d'une seule classe à travers deux ou plusieurs fichiers sources. Chaque fichier contient un fragment de la classe, et le compilateur les assemble au moment de la construction. Le mot-clé partial doit apparaître dans chaque partie de la classe.
Exemple 1 – Division d'une classe simple
Considérez un projet nommé HeightWeightInfo qui stocke la taille et le poids d'une personne.
namespace HeightWeightInfo {
public partial class Enregistrement {
private int h;
private int w;
public Enregistrement(int h, int w) {
this.h = h;
this.w = w;
}
}
}
La même classe Enregistrement est continuée dans un second fichier.
namespace HeightWeightInfo {
public partial class Enregistrement {
public void AfficherEnregistrement() {
Console.WriteLine("Taille :" + h);
Console.WriteLine("Poids :" + w);
}
}
}
Finalement, le programme qui utilise la classe ressemble à ceci :
namespace HeightWeightInfo {
class Program {
static void Main(string[] args) {
Enregistrement monEnregistrement = new Enregistrement(10, 15);
monEnregistrement.AfficherEnregistrement();
Console.ReadLine();
}
}
}
Le compilateur fusionne les deux définitions Enregistrement en une seule classe qui contient à la fois le constructeur et la méthode AfficherEnregistrement.
Quand utiliser les classes partielles
- Projets volumineux avec plusieurs développeurs : Chaque membre d'équipe peut éditer un fichier séparé sans conflit.
- Code auto-généré : Les EDI créent souvent des fichiers qui ne devraient pas être modifiés manuellement ; les classes partielles vous permettent d'ajouter une logique personnalisée sans modifier le code généré.
Points clés à retenir
- Le mot-clé
partialdoit apparaître dans chaque fichier qui contribue à la classe. - Toutes les parties doivent résider dans le même espace de noms et être compilées ensemble.
- Toutes les parties doivent partager le même modificateur d'accès (par exemple,
public,internal). - Si une partie déclare la classe comme
abstractousealed, toute la classe hérite de cet attribut. - Tous les membres définis dans n'importe quelle partie sont visibles pour toutes les autres parties.
- Les modificateurs partial ne sont pas autorisés sur les délégués ou les énumérations.
Qu'est-ce qu'une méthode partielle ?
Une méthode partielle est un type spécial de méthode qui peut être déclarée dans une partie d'une classe partielle et optionnellement implémentée dans une autre. Si l'implémentation est omise, à la fois la déclaration de méthode et tout appel vers elle sont supprimés à la compilation, ce qui peut améliorer les performances.
Exemple 2 – Utilisation de méthodes partielles
Dans fichier1.cs, la classe Voiture déclare une méthode partielle et d'autres méthodes régulières.
public partial class Voiture {
partial void InitialiserVoiture();
public void ConstruireJante() { }
public void ConstruireRoues() { }
}
Dans fichier2.cs, la même classe Voiture fournit l'implémentation pour InitialiserVoiture et ajoute une autre méthode.
public partial class Voiture {
public void ConstruireMoteur() { }
partial void InitialiserVoiture() {
string str = "Voiture";
}
}
Les déclarations de méthodes partielles consistent en deux parties : la signature dans un fichier et l'implémentation optionnelle dans le même ou un autre fichier.
Règles pour les méthodes partielles
- Doit être déclarée avec le mot-clé
partial. - Le type de retour est toujours
void(aucune valeur de retour). - Implicitement
private; elles ne peuvent pas êtrepublic,protectedouinternal. - Ne peuvent pas être déclarées
virtual,overrideouabstract. - Si aucune implémentation n'est fournie, le compilateur supprime la méthode et tous les appels vers elle.
Langue C
- Classes et objets C# : Fondations pour une POO robuste
- Maîtriser les classes et méthodes abstraites C# : Guide pratique
- Maîtriser les classes et méthodes sealed en C# : Quand les utiliser, exemples clairs et sécurité du code
- Classes et objets C++ : Guide pratique de la programmation orientée objet
- Fonctions amies et classes amies en C++ : Maîtriser le contrôle d'accès
- Maîtriser Java : Comprendre les Objets, Classes et Concepts POO de Base
- Maîtriser l'héritage en C# : créer du code réutilisable et maintenable
- Polymorphisme en C# : liaison statique vs dynamique expliquée
- ASTM A729 Classe A : Acier doublement normalisé et revenu - Propriétés clés et normes