Generika (C#-Programmierhandbuch)

Aktualisiert: November 2007

Generika wurden in Version 2.0 der Programmiersprache C# und der Common Language Runtime (CLR) hinzugefügt. Generika führen das Konzept der Typparameter in .NET Framework ein. Dadurch wird des möglich, Klassen und Methoden zu entwerfen, in denen die Angabe eines oder mehrerer Typen verzögert wird, bis die Klasse bzw. Methode durch Clientcode deklariert und instanziiert wird. Indem Sie beispielsweise den generischen Typparameter T wie im folgenden Beispiel verwenden, können Sie eine einzelne Klasse schreiben, die von anderem Clientcode verwendet werden kann, ohne die damit verbundenen Kosten und Risiken von Boxingoperationen oder Umwandlungen zur Laufzeit:

// 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>();
    }
}

Übersicht über Generika

  • Verwenden Sie generische Typen, um die Codewiederverwendung, Typsicherheit und Leistung zu optimieren.

  • Am häufigsten werden Generika zum Erstellen von Auflistungsklassen verwendet.

  • Die .NET Framework-Klassenbibliothek enthält mehrere neue generische Auflistungsklassen im System.Collections.Generic-Namespace. Diese sollten möglichst oft anstelle von Klassen wie ArrayList im System.Collections-Namespace verwendet werden.

  • Sie können eigene generische Schnittstellen, Klassen, Methoden, Ereignisse und Delegaten erstellen.

  • Generische Klassen werden möglicherweise eingeschränkt, um den Zugriff auf Methoden für besondere Datentypen zu aktivieren.

  • Informationen über die Typen, die in einem generischen Datentyp verwendet werden, können zur Laufzeit mittels Reflektion abgerufen werden.

Verwandte Abschnitte

Weitere Informationen

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie unter C#-Programmiersprachenspezifikation.

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

System.Collections.Generic

Typen (C#-Programmierhandbuch)

<typeparam> (C#-Programmierhandbuch)

<typeparamref> (C#-Programmierhandbuch)