I generics sono una nuova funzionalità della versione 2.0 del linguaggio C# e del linguaggio CLR (Common Language Runtime). Introducono in .NET Framework il concetto di parametri di tipo, grazie ai quali è possibile progettare classi e metodi che rinviano la specifica di uno più tipi fino a quando il codice client non dichiara o crea un'istanza per la classe o il metodo. Utilizzando il parametro del tipo generico T è ad esempio possibile scrivere una singola classe utilizzabile in altro codice client senza incorrere nel rischio di cast o operazioni di boxing in fase di esecuzione, come illustrato di seguito:
|
// Declare the generic class
public class GenericList<T>
{
void Add(T input) { }
}
class TestGenericList
{
private class ExampleClass { }
static void Main()
{
// Declare a list of type int
GenericList<int> list1 = new GenericList<int>();
// Declare a list of type string
GenericList<string> list2 = new GenericList<string>();
// Declare a list of type ExampleClass
GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
}
}
|
Cenni preliminari sui generics
-
Utilizzare i tipi generici per massimizzare il riutilizzo del codice, l'indipendenza dai tipi e le prestazioni.
-
I generics vengono generalmente utilizzati per creare classi di insiemi.
-
La libreria di classi .NET Framework contiene diverse classi di insiemi generiche nello spazio dei nomi System.Collections.Generic, che dovrebbero essere utilizzate quando possibile al posto di classi come ArrayList nello spazio dei nomi System.Collections.
-
È possibile creare interfacce, classi, metodi, eventi e delegati generici personalizzati.
-
Le classi generiche possono essere vincolate in modo da consentire l'accesso ai metodi su determinati tipi di dati.
-
È possibile ottenere informazioni sui tipi utilizzati in un tipo di dati generico in fase di esecuzione tramite la reflection.
Sezioni correlate
Specifiche del linguaggio C#
Vedere anche