Von Daten unabhängigen Code schreiben 16.10.2017, 00:00 Uhr

Generics in C#

Richtig benutzte Generics gewährleisten Typsicherheit bei hoher Performance.
Motivation für diesen Beitrag zu Generics in C# war die Beobachtung, dass Entwickler häufig gegen Best Practices verstoßen und nicht selten offene Fragen existieren. Fakt ist, dass sich die Generics in C#.NET fundamental von anderen Konzepten – etwa von Java und C++ – unterscheiden. Dieser Artikel betrachtet die Generics gemäß dem C#-­ECMA-Standard, während sich die Aussagen über Implementationen auf das .NET Framework beziehen.
Das Ziel von generischen Programmen ist es, Algorithmen unabhängig von den später verwendeten Datentypen zu formulieren. Das folgende Beispiel soll zur Verwendung von Generics motivieren: Zahlen sollen in einer Liste gespeichert werden. Dabei sollen Zahlen, die kleiner sind als die größte bereits in der Liste vorhandene Zahl, nicht gespeichert werden. Geben Sie also die Zahlen [1, 4, 2, 7, 5] ein, so soll das Ergebnis [1, 4, 7] lauten: Als erste Zahl wird die 1 hinzugefügt. Anschließend kommt die 4 dazu und ist damit das größte Objekt. Da die danach eingegebene 2 kleiner ist als die 4, wird sie nicht berücksichtigt. Die 7 ist wieder größer als die 4 und wird folglich gespeichert. Eine Implementierung könnte für ganze Zahlen so aussehen wie in Listing 1 gezeigt.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar