Constraints

Bisweilen müssen Sie sicherstellen, dass Elemente, die Sie einer generischen Liste hinzufügen, bestimmten Anforderungen (Constraints) entsprechen (z.B. von einer gegebenen Basisklasse abgeleitet sind oder ein bestimmtes Interface implementieren). Im folgenden Beispiel erstellen wir eine vereinfachte, einfach verkettete und sortierbare Liste. Die Liste besteht aus Knoten (Node), und es muss garantiert sein, dass jeder Node das Interface IComparer implementiert. Dazu verwenden wir die folgende Anweisung:

public class Node<T> :
 IComparable<Node<T>> where T : IComparable<T>

Damit definieren wir einen generischen Node, der einen Typ T umfasst. Node von T implementiert das Interface IComparable<T>, dies bedeutet, dass zwei Objekte des Typs ...

Get Programmieren mit C# 3.0 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.