Antes de que saliera C# 4.0, estaba bastante entusiasmado con la covarianza y la contravariancia. Me complació mi afición por la corrección teórica.Ejemplos de buenos casos de uso de la vida real para la covarianza y la contravarianza en C# 4.0?
Sin embargo, ahora que está fuera, y he vuelto a escribir el código normal, todos los días, aburrido, me estoy empezando a preguntar: ¿alguna vez lo usé? Y noto que no lo he usado conscientemente. Ninguna de las interfaces o delegados que he definido se han beneficiado de ella.
Sólo hay un caso único en el que más tarde descubrí que inconscientemente usé la covarianza, pero es muy sutil y podría haberlo notado. Imagínese X
es una clase base y Y
es un descendiente de la misma:
if (enumerableOfYs.Contains(variableOfTypeX))
¿Hay ejemplos interesantes o emocionantes, donde cualquiera de ustedes han utilizado covarianza o contravarianza en la vida real, no artificial uso- caso y realmente ha salvado el día siendo espectacularmente "correcto"?
¿Quieres decir además de cosas como 'IEnumerable', 'Func', y' IComparable 'que probablemente utilizas todos los días sin darte cuenta? –
Gabe