Esto es algo engañoso, ya que una interfaz, por definición, no proporciona ninguna implementación.
Sin embargo, muchas partes de la infraestructura intentan hacer la vida más fácil, por lo que proporcionan un método que requiere una interfaz, pero también proporciona una sobrecarga sin parámetros. Un buen ejemplo es List<T>.Sort
.
La documentación aquí está sugiriendo que, si se utiliza un método que normalmente requeriría una IComparer<T>
, sino que lo utiliza a través de algún sobrecarga que no lo hace, obtendrá la referencia "aplicación por defecto" que se utiliza en su lugar.
Sin embargo, esto es realmente un "detalle de implementación" de clases no relacionadas con la interfaz en sí. Yo personalmente creo que esto es una mala elección de palabras de la documentación, y debe ser algo más como:
Muchos tipos en el marco dependen de una aplicación común de esta interfaz proporcionada por el Comparer clase.
Esto, en mi opinión, dar un significado más clara a esta ...
me gusta mucho este tipo de explicaciones! =) –
@Will: ¡Gracias! Hago lo mejor que puedo;) –
Agregue algo. A veces, un marco utiliza el patrón de casos especiales (o el patrón de objeto nulo), y una implementación predeterminada de una interfaz puede ser parte del patrón. :) –