Die .NET CLR - Version 2.0

Für Typsicherheit: Constraints

Constraints werden mit dem Schlüsselwort "where" eingeführt. Um in der "GenericClass" beispielsweise sicherzustellen, dass nur von "Person" abgeleitete Klassen verwendet werden, schreibt man:

class GenericClass<T> where T : Person {

Dadurch wird sichergestellt, dass es sich bei T um eine "Person" (oder eine davon abgeleitete Klasse) handeln muss - und das ermöglicht es dann, innerhalb von "GenericClass" die Methoden von "Person" zu verwenden. Angenommen, man will im Falle eines bestimmten Namens ("foo") eine Sonderbehandlung einführen, so kann man dann programmieren:

class GenericClass<T> where T:Person {
private T data;

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

public T GetData() {
if (data.Name == "foo") return null;

return data;
}
}