Gli extension methods permettono a metodi statici di essere richiamati usando la sintassi dei metodi di istanza. Questi metodi devono avere almeno un parametro che rappresenta l'istanza del metodo su cui operare. In C# su questo parametro si utilizza la parola chiave this.
public static class StringExtensions{
public static bool IsPalindrome(this string s){
...
}
}
Questo metodo viene richiamato nel seguente modo:
if("hello world".IsPalindrome()){
....
}
La classe che definisce l'extension method viene definita "sponsor" e deve essere statica. Ovviamente va importato il namespace della classe sponsor.
Vanno usati il minimo indispensabile ;)
[Fonte: Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition) - K. Cwalina, B. Abrams - Addison Wesley - 2009]
Technorati tags:
Csharp