Ich bekomme diese Fehlermeldung und ich kann nicht herausfinden, warum!Fehlermeldung bezüglich IEnumerable.GetEnumerator()
Error 1 'Exo5Chap12.ShortCollection<T>' does not implement interface member
'System.Collections.IEnumerable.GetEnumerator()'.
'Exo5Chap12.ShortCollection<T>.GetEnumerator()' cannot implement
'System.Collections.IEnumerable.GetEnumerator()' because it does not have the matching
return type of 'System.Collections.IEnumerator'.
E:\MyFolders\Dev\c#\Chapter12\Exo5Chap12\Exo5Chap12\exo5.cs 9 18 Exo5Chap12
Hier ist der Code mit einer Implementierung von GetEnumerator(). Was ist los?
public class ShortCollection<T> : IList<T>
{
protected Collection<T> innerCollection;
protected int maxSize = 10;
public IEnumerator<T> GetEnumerator()
{
return (innerCollection as IEnumerator<T>).GetEnumerator();
}
}
Einfach nicht das InnerCollection-Objekt für die Implementierungen IEnumerable und IEnumerable. Siehe meinen vollständigen Code in der geposteten Antwort unten ... –
code4life
Ich merke, dass die Fehlermeldung Ihnen * genau * sagt, was hier schief geht: dass IEnumerable nicht implementiert wurde, dass es implementiert werden muss, und dass das die einzige Methode ist das könnte es implementieren, hat den falschen Rückgabetyp. Das hat schon eine ziemlich komplizierte Fehleranalyse erfordert und doch reicht es nicht aus, das Problem selbst zu diagnostizieren. Wäre eine andere Fehlermeldung hilfreicher gewesen? Welche Art von Fehlermeldung hätte es Ihnen ermöglicht, das Problem zu diagnostizieren, ohne nach Hilfe zu fragen? –
Ich bin ein Neuling und lese das Wrox (Anfänger) Visual C# Buch. Ich wusste nicht, dass ich IEnumerable und IEnumerable implementieren musste, da es nicht einmal in dem Buch erwähnt wird. Außerdem war dieser Code die Antwort der Übung (frage mich, ob sie den Code vor dem Ausdruck überprüft hatten). Ich habe mir die msdn Webseite und das wrox Forum angesehen, aber sie erwähnen es auch nicht. Ich muss sagen IEnumerable ist ziemlich schwer für mich zu lernen. Aber jetzt, da ich den Fehler wieder lese, stimme ich zu, dass es Sinn macht. –