Disons que je conçois une structure de données personnalisée comme une pile ou une file d'attente (par exemple - pourrait être une autre collection ordonnée arbitrairement qui a l'équivalent logique de push
et des pop
méthodes - c'est-à-dire des méthodes d'accesseur destructives).
Si vous implémentiez un itérateur (en .NET, en particulier IEnumerable<T>
) sur cette collection qui apparaissait à chaque itération, cela IEnumerable<T>
romprait-il le contrat implicite?
A IEnumerable<T>
ce contrat implicite?
par exemple:
public IEnumerator<T> GetEnumerator()
{
if (this.list.Count > 0)
yield return this.Pop();
else
yield break;
}