Generics in C#
Lernen Sie, wie Generics typsichere und wiederverwendbare Codestrukturen ermöglichen
Generics in C# ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 5. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 5 Lektionen.
Einführung in Generics
Generics in C#
Willkommen zur ersten Lektion im Bereich „Erweiterte C#-Funktionen“! In dieser Lektion lernen Sie Generics kennen, ein leistungsfähiges Feature in C#, mit dem Sie flexiblen und wiederverwendbaren Code erstellen können. Beginnen wir!

Was sind Generics?
Was sind Generics?
Generics sind ein Feature in C#, mit dem Sie Klassen, Methoden und Datenstrukturen mit einem Platzhalter für den Datentyp definieren können, den sie speichern oder verwenden. Generics ermöglichen Typsicherheit und die Wiederverwendung von Code.
Beispiel: Eine generische Liste (List<T>) kann Elemente beliebigen Typs speichern und dabei Typsicherheit gewährleisten.
Generische Klassen erstellen
Generische Klassen erstellen
Sie können eine generische Klasse mit der Syntax <T> definieren, wobei T einen Typparameter darstellt. Beispiel:
Wichtiger Punkt: Verwenden Sie Generics, um Klassen zu erstellen, die mit jedem Datentyp arbeiten und dabei Typsicherheit gewährleisten.
using System;
class GenericBox<T> {
public T Value { get; set; }
public void Display() {
Console.WriteLine("Value: " + Value);
}
}
class Program {
static void Main() {
GenericBox<int> intBox = new GenericBox<int> { Value = 42 };
intBox.Display(); // Outputs: Value: 42
GenericBox<string> stringBox = new GenericBox<string> { Value = "Hello, Generics!" };
stringBox.Display(); // Outputs: Value: Hello, Generics!
}
}
Generische Methoden erstellen
Generische Methoden erstellen
Sie können eine generische Methode innerhalb einer Klasse definieren. Beispiel:
Tipp: Verwenden Sie generische Methoden für Operationen, die auf mehrere Datentypen anwendbar sind.
using System;
class Program {
static void Main() {
PrintValue(42);
PrintValue("Generics are powerful!");
}
static void PrintValue<T>(T value) {
Console.WriteLine("Value: " + value);
}
}
Einschränkungen für Generics
Einschränkungen für Generics
Constraints schränken die Typen ein, die als Typparameter verwendet werden können. Beispiel:
where T : struct– T muss ein Werttyp sein.where T : class– T muss ein Verweistyp sein.where T : new()– T muss einen parameterlosen Konstruktor besitzen.
Beispiel:
Wichtiger Punkt: Constraints machen Generics flexibler und für bestimmte Szenarien einsetzbar.
using System;
class Program {
static void Main() {
DisplayDefault<int>();
DisplayDefault<string>();
}
static void DisplayDefault<T>() where T : new() {
T instance = new T();
Console.WriteLine("Created instance of: " + typeof(T));
}
}
Generische Collections
Generische Collections
C# stellt mehrere integrierte generische Collections bereit:
- List<T>: Speichert eine Sammlung von Elementen in einem dynamischen Array.
- Dictionary<TKey, TValue>: Speichert Schlüssel-Wert-Paare für schnelle Suchvorgänge.
- Queue<T>: Implementiert eine Struktur nach dem First-In-First-Out-Prinzip (FIFO).
Beispiel: Verwendung einer generischen Liste:
using System;
using System.Collections.Generic;
class Program {
static void Main() {
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
names.Add("Diana");
foreach (string name in names) {
Console.WriteLine(name);
}
}
}
Übungsaufgabe
Übungsaufgabe
Erstellen Sie eine generische Klasse Pair<TKey, TValue>, die ein Schlüssel-Wert-Paar speichert, sowie eine generische Methode Swap(), die Schlüssel und Wert vertauscht. Beispiel:
using System;
class Pair<TKey, TValue> {
public TKey Key { get; set; }
public TValue Value { get; set; }
public void Swap() {
(Key, Value) = ((TKey)(object)Value, (TValue)(object)Key);
}
public void Display() {
Console.WriteLine($"Key: {Key}, Value: {Value}");
}
}
class Program {
static void Main() {
Pair<string, int> pair = new Pair<string, int> { Key = "Age", Value = 30 };
pair.Display();
pair.Swap();
pair.Display();
}
}
Bewährte Vorgehensweisen für die Verwendung von Generics
Bewährte Vorgehensweisen für die Verwendung von Generics
Hier sind einige bewährte Vorgehensweisen:
- Verwenden Sie Generics, um wiederverwendbare und typsichere Klassen und Methoden zu erstellen.
- Verwenden Sie Constraints, wenn bestimmte Anforderungen an den Typ erfüllt sein müssen.
- Bevorzugen Sie aus Gründen der Leistung und Sicherheit generische Collections gegenüber nicht generischen Collections.
Tipp: Verwenden Sie aussagekräftige Namen für Typparameter, z. B. T für einen Typ oder TKey und TValue für Schlüssel-Wert-Paare.
Sehr gut!
Sehr gut!
Herzlichen Glückwunsch! Sie haben gelernt, wie Sie Generics verwenden, um wiederverwendbaren und flexiblen Code in C# zu erstellen. In der nächsten Lektion erkunden wir die asynchrone Programmierung mit async und await. Programmieren wir weiter!

Häufig gestellte Fragen
Ist die Lektion „Generics in C#“ kostenlos?
Ja — der vollständige Text von „Generics in C#“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 5 Lektionen.
Was lerne ich in „Generics in C#“?
Lernen Sie, wie Generics typsichere und wiederverwendbare Codestrukturen ermöglichen Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 5.
Wie lange dauert die Lektion „Generics in C#“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Generics in C#
- Async und Await: Mit asynchronem Code arbeiten
- Threading und Tasks verstehen
- Delegates und Lambdas erkunden
- Reflection in C# verstehen