Aparece este mensaje de error y no puedo entender por qué.Mensaje de error con respecto a 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
Aquí está el código con una implementación de GetEnumerator(). ¿Qué pasa?
public class ShortCollection<T> : IList<T>
{
protected Collection<T> innerCollection;
protected int maxSize = 10;
public IEnumerator<T> GetEnumerator()
{
return (innerCollection as IEnumerator<T>).GetEnumerator();
}
}
Simplemente no copie el objeto innerCollection, para las implementaciones IEnumerable e IEnumerable. Vea mi código completo en la respuesta publicada a continuación ... –
code4life
Noté que el mensaje de error le dice * exactamente * qué está pasando mal aquí: que IEnumerable no se ha implementado, que se debe implementar y que el único método que podría implementarlo tiene el tipo de devolución incorrecto. Eso ya requirió un análisis de error bastante sofisticado y, sin embargo, no fue suficiente para permitirle diagnosticar el problema por su cuenta. ¿Hubiera sido más útil un mensaje de error diferente? ¿Qué tipo de mensaje de error le habría permitido diagnosticar el problema sin pedir ayuda? –
Soy un novato y estoy leyendo el libro de Wrox (principiante) de Visual C#. No sabía que tenía que implementar tanto IEnumerable como IEnumerable, ya que ni siquiera se menciona en el libro. Además, ese código fue la respuesta del ejercicio (preguntándose si revisaron el código antes de imprimirlo). Eché un vistazo al sitio web de msdn y al foro de wrox, pero tampoco lo mencionan. Debo decir que IEnumerable es bastante difícil de aprender. Pero ahora que leí el error nuevamente, estoy de acuerdo, tiene sentido. –