ASP.Net  »  F.A.Q. 

Cosa sono gli Extension Methods?

Gli Extension Methods sono una caratteristica introdotta con il .NET Framework 3.5 grazie alla quale è possibile aggiungere nuovi metodi e proprietà ad un "tipo" esistente.

Supponiamo di eseguire sempre la stessa operazione su un certo tipo di dati, ad esempio ottenere un array di byte a partire dal contenuto di una stringa. Una soluzione tipica consiste nel definire una classe statica con il metodo che esegue l'operazione, quindi richiamarlo utilizzando qualcosa del tipo:

string message = "Messaggio";
byte[] buffer = Utils.GetBytes(message);

In una situazione del genere è possibile utilizzare un Extension Method, che deve essere creato come metodo statico all'interno di una classe statica del progetto:

public static class Utils
{
  public static byte[] GetBytes(this string str)
  {
    return Encoding.Default.GetBytes(str);
  }
}

La parola chiave this indica che il metodo GetBytes è un'estensione della classe String. In pratica, la classe String viene arricchita con un nuovo membro, che può essere richiamato come qualsiasi altro:

string message = "Messaggio";
byte[] buffer = message.GetBytes();

Anche l'IntelliSense di Visual Studio visualizzerà il nuovo metodo, segnalando che si tratta di un'estensione della classe.

Per approfondire:

Le novità di C# 3.0

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide