C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| public class FooCollection : IList<Foo> { public IEnumerator<Foo> GetEnumerator() { for (int i = 0; i < this._Items.Length; i++) { yield return this._Items[i]; } }
private Foo[] _Items = {}; } |
| C#-Compiler hat folgendes geschrieben: |
"FooCollection" implementiert den Schnittstellenmember "System.Collections.IEnumerable.GetEnumerator()" nicht.
"FooCollection.GetEnumerator()" hat nicht den entsprechenden Rückgabetyp "System.Collections.IEnumerator" und kann "System.Collections.IEnumerable.GetEnumerator()" daher nicht implementieren. |
Ich habe die Definition so aus der IEnumerable übernommen und nur den Datentyp auf "IEnumerator<
Foo>" angepasst. Ist evtl. die Definition meines Arrays "_Items" falsch?
Edit: Die Definition habe ich aus der
IEnumerable<T> übernommen. Sind ja zwei verschiedene Schnittstellen.
Edit 2: Ich glaube ich wollte das Rad neu erfinden. Ich habe gerade die "System.Collections.CollectionBase" gefunden und werde da mal reinschauen.