¿Cuál es la diferencia entre IEnumerable
y IEnumerable<T>
?Diferencia entre IEnumerable e IEnumerable <T>?
He visto muchas clases de framework implementando ambas interfaces, por lo tanto, me gustaría saber qué ventajas se obtienen al implementar ambas.
favor, eche un vistazo cómo han sido definidos:
public interface IEnumerable
{
[DispId(-4)]
IEnumerator GetEnumerator();
}
public interface IEnumerable<T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
Como vemos, IEnumerable<T>
deriva de IEnumerable
, eso significa que lo tiene IEnumerable
, IEnumerable<T>
hereda, entonces ¿por qué ponemos en práctica tanto en lugar de sólo IEnumerable<T>
? ¿Implementar IEnumerable<T>
no es suficiente?
mismo modo, hay otros pares similares:
IList
yIList<T>
ICollection
yICollection<T>
me gustaría saber acerca de estos también.
1 vida habría sido mucho más fácil si los genéricos se había hecho en .NET 1.0 ... – Oded
@ Jon: la pregunta es: ¿por qué necesitamos para implementar 'IEnumerable' cuando ya implementar' 'IEnumerable , ¿o viceversa? –
Nawaz
@Nawaz: he editado mi respuesta. ¿Qué tan cómodo está con la idea de por qué los genéricos son algo bueno? –