Generics (Guida per programmatori C#)

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#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 20 Generics

Vedere anche

Mostra: