Die .NET CLR - Version 2.0

BCL: Collections schon da

Die Base Class Library versorgt den Programmierer mit den wichtigsten generischen Collection-Klassen. So gibt es neben der Liste auch eine Dictionary-Klasse (eine Hashtable), eine Queue, eine Stack-Klasse und weitere.

Natürlich ist man nicht auf die vorgefertigten Collections beschränkt. Stattdessen kann man eigene Klassen unter der Verwendung von Generics implementieren. Die dazu benötigte Schreibweise entspricht mehr oder minder der in C++: Der Typ-Parameter T (beziehungsweise die Typ-Paramenter, wenn es mehrere davon gibt) werden beim Klassennamen mit angegeben, und können dann als Platzhalter für einen Typ innerhalb der Klasse verwendet werden:

class GenericClass<T> {
private T data;

public GenericClass(T param) {
data = param;
}

public T GetData() {
return data;
}
}

Zusätzlich kann man den Platzhalter "T" mit Beschränkungen (Constraints) versehen. Mit Hilfe dieser Constraints versorgt der Programmierer den Compiler mit zusätzlichen Informationen, über die dann weitergehende Operationen mit "T" ermöglicht werden. Ein solches Constraint ist beispielsweise das Basisklassen-Constraint. Dabei gibt man an, dass alle Instanzen von "T" von einer bestimmten Basisklasse (oder davon abgeleiteten Klassen) sind, sodass man innerhalb der Generic-Klasse Methoden der Basisklasse von T verwenden kann.