Les méthodes d'extension
De Banane Atomic
Aller à la navigationAller à la recherche
Disponible à partir de C# 3, elles permettent d'ajouter des méthodes à une classe ou à une structure sans en modifier son code.
|
// Déclaration de la méthode d'extension dans une classe static public static class StringExtensions { /// <summary> /// A Contains method with a comparison type. /// </summary> public static bool Contains(this string source, string value, StringComparison comparisonType) { return source.IndexOf(value, comparisonType) >= 0; } } // Utilisation de la méthode d'extension : comparaison de string en ignorant la casse var monString = "ASTRINGTOTEST"; monString.Contains("string", StringComparison.OrdinalIgnoreCase); |
Avec les génériques
public static class IListExtensions { /// <summary> /// Un AddRange pour IList. /// </summary> public static void AddRange<T>(this IList<T> source, IEnumerable<T> items) { foreach (var item in items) { source.Add(item); } } } // Utilisation de la méthode d'extension : var maListe = new List<string>(); maListe.AddRange(new string[] { "1", "2", "3" });; |