Für was werden Generika gebraucht c#?

2 Antworten

Von Experte PeterKremsner bestätigt

Wenn die Daten verarbeitende Klasse oder Methode keine Kenntnis der Daten benötigt, die sie verarbeitet. Viele Strukturen oder Methoden sind so allgemein, dass sie zwar später mit einem konkreten Typ arbeiten sollen, aber dieser für die eigentliche Implementierung nicht relevant ist.

Beispiel: Du hast eine Liste von Elementen. Für die Implementierung der Listenklasse selbst ist es ganz egal, ob Du da später ints, Strings oder irgendwelche Objekte reinpacken willst. Die Operationen verlaufen immer nach demselben Schema.

Wenn es also egal ist, auf welchem Datentyp man arbeitet, kann man ihn doch auch gleich einfach nur T oder G nennen.

Und genau das tun Generics. Für die Anwendung der Liste ist es aber dann schon relevant, welcher Typ gewünscht ist. Daher nutzt man ein Generic immer mit einem konkreten Typ. So wird dann wiederum die Typsicherheit garantiert.

Beispiel: Die Listenklasse heißt List<T>. Es ist für die Liste egal, was T ist. Aber T ist eben der Typ der Elemente. Die Implementierung muss dann aber einen konkreten Typ angeben.

var intList = new List<int>();
var stringList = new List<string>();
Von Experte ohwehohach bestätigt

Die werden verwendet wenn du zB eine Bibliothek machen möchtest die zum einen Typsicher ist du aber zum Zeitpunkt des erstellen der Bibliothek eben nicht weißt welchen Datentyp du verwenden möchtest.

Typische Generics sind zB die List Klasse in der C# Bibliothek. List ist hald nur eine generische Liste wo du eben bei der verwendung erst den Datentyp bestimmst.

Sagen wir zB du möchtest eine Liste von Integern dann schreibst du

List<int> integers = new ();

oder du möchtest eine Liste von doubles

List<double> doubles = new ();

Jede Instanz dieser Liste ist jetzt Typsicher und verwendet eben nur den angebenen Datentyp.

So kannst du zB der integerliste keinen double hinzufügen.