Condividi tramite


Generics (Guida per programmatori C#)

I generics sono stati aggiunti alla 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

Per ulteriori informazioni:

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere Specifiche del linguaggio C#.

Vedere anche

Riferimenti

System.Collections.Generic

Tipi (Guida per programmatori C#)

<typeparam> (Guida per programmatori C#)

<typeparamref> (Guida per programmatori C#)

Concetti

Guida per programmatori C#