Extension Method

Mi sono sempre chiesto come potevo estendere i metodi, per determinati tipi di dati, al fine di facilitarmi una serie di operazioni come una formattazione custom, nel caso di data; effettuare una replace, nel caso di stringhe o addirittura operazioni più complesse.

Dal framework 3.5 è possibile tutto ciò e vediamo come:

Prima di tutto creo una class library impostandola come public static class Extension e aggiungendo per ciascun metodo la seguente sintassi:

public static string ReplaceSQL(this string s)
{
return s.Replace("'", "''");
}

Come si può notare il metodo dovrà essere static e nella parte relativa al passaggio delle variabili dovrà essere specificato l'attributo this per agganciare quanto abbiamo realizzato nell'elenco metodi del tipo di dato indicato (this string).

In questo modo nel momento in cui la classe verrà aggiunta come riferimento e aggiunto il namespace al nostro progetto tutte le variabili il quale tipo è stato esteso troveremo il metodo che abbiamo realizzato, lo si potrà notare con l'intellisense dalla nuova icona introdotta rappresentata dal cubo viola con una freccia blu rivolta verso il basso.

Month List