Méthode d’extension C# (Extension Methods)

Les méthodes d’extension en C# offrent la possibilité d’ajouter de la fonctionnalité (des méthodes) aux types de données déjà existent dans le langage de programmation C#. L’avantage des méthodes d’extension est que ce n’est pas nécessaire de modifier un type de données ou de créer un nouveau type qui doit hériter d’un type existant. En effet, il n’y a pas de différence entre appeler une méthode d’extension ou d’appeler une méthode qui est définie dans un type de données.

Pour définir et appeler une méthode d’extension en C# il ne faut que respecter les règles suivants :

  1. Définir une classe static visible pour le client et comportant la méthode d’extension (p.ex. public).
  2. Implémenter la méthode d’extension avec la même visibilité que la classe et le mot clé static.
  3. Le premier paramètre de la méthode spécifie le type de donnés qui est élargi. Ce paramètre doit compter le modificateur this.
  4. Dans le code qui appelle la méthode il faut inclure le namespace qui comporte la méthode d’extension.
  5. Appeler les méthodes comme c’était une méthode instance de ce type de donnés.

Dans l’exemple suivant on jette un coup d’œil à la fonctionnalité d’une méthode d’extension lié à la classe String. Le but de cette méthode est de transformer les caractères à ignorer (blankspaces dans ce cas-là) dans un String.

public static class MyStringExtensions
{
  public static string ModifyWhitespaces(this string val)
  {
    return Regex.Replace(val, @"\s+", " ");
  }
}

// utilisation: 
var name = "Tino  !";
name = name.ModifyWhitespaces();

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *