Sto provando a scrivere la mia (semplice) implementazione di List. Questo è quello che ho fatto finora:Problemi di implementazione di IEnumerable <T>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace provaIEnum
{
class MyList<T> : IEnumerable<T>
{
private T[] _array;
public int Count { get; private set; }
public MyList() { /* ... */ }
public void Add(T element) { /* ... */ }
// ...
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < Count; i++)
yield return _array[i];
}
}
Ricevo un errore circa GetEnumerator però:
'provaIEnum.Lista' non implementa il membro di interfaccia 'System.Collections.IEnumerable.GetEnumerator()'. 'provaIEnum.Lista.GetEnumerator()' non può implementare 'System.Collections.IEnumerable.GetEnumerator()' perché non ha il tipo restituito corrispondente a 'System.Collections.IEnumerator'.
Non sono sicuro di aver capito cosa sta cercando di dirmi VS e non ho idea di come risolverlo.
Grazie per il vostro tempo
Si noti che non si dovrebbe scrivere il proprio enumeratore in questo modo poiché attualmente è possibile modificare l'array interno in un 'foreach' (chiamare' Add' in foreach non causerà un'eccezione). [Vedi] (http://stackoverflow.com/questions/24142614/when-should-i-separately-implement-ienumeratort) – nawfal
@nawfal buon punto, i bug ci guardano sempre;) – BlackBear