4.11 Typargumente beschränken

Problem

Ihr generischer Typ muss mit einem Typargument erzeugt werden, das die Member eines bestimmten Interfaces wie beispielsweise des Interfaces IDisposable unterstützt.

Lösung

Verwenden Sie Constraints, um zu erzwingen, dass das Typargument für einen generischen Typ einem Typ entspricht, der ein oder mehrere festgelegte Interfaces implementiert:

public class DisposableList<T> : IList<T>
    where T : IDisposable
{
    private List<T> _items = new List<T>( );

    // Private Methode, die alle Elemente aus der Liste entfernt
    private void Delete(T item)
    {
        item.Dispose( );
    }

Die Klasse DisposableList erlaubt als Typargument Klassen, die IDisposable implementieren. Der Grund dafür ist, dass auf einem Objekt die Methode Dispose aufgerufen ...

Get C# Kochbuch 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.