ICollection<T> mit .NET 2.0 implementieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ICollection<T> mit .NET 2.0 implementieren

    Falls es jemand interessiert hier ein kleines Code-Snippet, welches mit einige Zeit gekostet hat. Und zwar ging es darum, das generische System.Collections.Generic.ICollection<T> Interface zu implementieren.

    Das Problem dabei ist, dass ICollection<T> von IEnumerable<T> und IEnumerable (einmal mit Template einmal ohne) abgeleitet ist. Dadurch ergibt sich das Problem, dass jeder der ICollection<T> implementiert zweimal GetEnumerator implementieren muss, jedoch mit unterschiedlichen Return-Types.

    Die Lösung schaut so aus:

    Quellcode

    1. public IEnumerator<T> GetEnumerator () { ... }
    2. System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()
    3. {
    4. return (System.Collections.IEnumerator) GetEnumerator ();
    5. }

    D.h. die Methoden unterscheiden sich nur im Rückgabetyp und nicht im Namen oder der Parameterliste. Wie der Compiler checkt, welches GetEnumerator gemeint ist, ist mir zwar ein Rätsel, aber er packt es....

    hth