Développer une extension en C# pour ajouter des méthodes à une classe

icon Tags de l'article : ,

Mai 17, 2011

Article technique / développement

Comme toujours, tout est dans le titre...

Il vous est surement déjà arrivé d'avoir à travailler avec une classe qui vient d'ailleurs (cf. X-Files), non ? Or vous aimeriez bien ajouter vos propres méthodes à cette classe, ce qui serait plus pratique pour votre code métier, la lisibilité du code, toussa toussa...

Mais comment faire ?

Tout simplement en développant une extension (ou classe "helper") dans laquelle vous ajouterez des méthodes qui iront se greffer à votre classe ! Rien de plus simple !

Supposons que vous ayez une classe "personne" :

public class Personne {
     public string Nom { get; set; }
     public string Prenom { get; set; }
}

Maintenant, pour ajouter des méthodes à cette classe, il vous suffit de créer une classe statique et de créer des méthodes qui utilisent le mot clé this (pour le paramètre de la méthode) :

public static class PersonneHelper
{
     public static string GetIdentite(this Personne personne)
     {
          return personne.Prenom   " "   personne.Nom;
     }
}

Et voilà :

Vous remarquerez que le logo à gauche de GetIdentite() est différent des logos des méthodes de la classe. Cela permet de voir les méthodes qui proviennent d'extensions plus facilement.

Je vous recommande seulement de faire attention lorsque vous ajoutez des méthodes à vos classes. N'en abusez pas ! En effet, à avoir trop de méthodes situées à plein d'endroits différents pour une seule et même classe, on fini par :

  • Avoir du code dur à relire (il faut aller à chaque fois dans les classes des helpers pour voir les traitements),
  • Avoir du code qui se répète (avec des classes complexes on finira par réécrire plusieurs fois le même code),
  • Oublier le contenu réel de la classe et l'utilité de certaines méthodes.

De plus, en fonction de votre besoin, utiliser des classes partielles peut se révéler bien meilleur. Donc n'en abusez pas !

Bon développement à tous ! (Et bonne journée aux non-développeurs qui ont eu le courage de tout lire jusqu'ici !)

3 commentaires

Glucoz - 17/05/2011 à 09:44:23

Merci pour le "non-développeurs qui ont eu le courage de tout lire jusqu'ici". :P

@répondre #lien

marcusien - 18/05/2011 à 06:36:15

Je connaissais pas cette façon de procéder, c'est pas mal pour utiliser lorsque l'on a des classes non accessibles (genre framework), mais sinon, faut utiliser du partial ^^

@répondre #lien

icon Flux RSS des commentaires de cet article

Les commentaires sont fermés pour cet article