Entiendo que cualquier Colección (aquí estoy hablando de regular no genérico) debería haber implementado ICollection, IEnumerable e IList en caso de colección de objetos regular o IDictionary en el caso de los Diccionarios.¿Por qué implementamos las interfaces recursivamente?
[Aún así, la pregunta que no es específico de colecciones]
IList se deriva de ICollection y IEnumerable
ICollection se deriva de IEnumerable
no se trata sólo de lo suficiente como para hacer una colección (Por ejemplo, ArrayList) implementar IList?
En el navegador de objetos está mostrando que las clases de colección (por ejemplo, ArrayList) están implementando IList, ICollection e IEnumerator.
Entiendo que incluso si especificamos las tres colecciones, .Net va a aceptar las definiciones solo una vez.
Pero mi pregunta es,
¿Hay alguna buena práctica o recomendación que nos guía para especificar las tres interfaces para la clase de colección (o cualquier clase similar a esto)?
¿O es solo propiedad del Examinador de objetos que se muestra como 3 implementaciones separadas? [Acabo de comprobar y descubrí que no es propiedad del navegador Object. Examinador de objetos sólo muestra las interfaces que se especifican en la definición de clase]
Las declaraciones que describes pueden ser redundantes, pero no son recursivas. – dthorpe