Actualmente estoy leyendo sobre covarianza y contravarianza en C#.¿Se aplica la covarianza/contravarianza a tipos implícitamente convertibles que no implementan una interfaz común?
Todos los ejemplos tienen detalles de los objetos que se pueden convertir y difieren debido a la precisión de la implementación de la interfaz, p.
Dónde Circle : IShape
covarianza: SomeType<Circle> as SomeType<IShape>
contravarianza: SomeType<IShape> as SomeType<Circle>
Si TypeA
y TypeB
tienen cada uno un implicit converter
escrita para convertir al otro tipo, pero no lo hacen implementar cualquier interfaz común , sigue siendo correcto hablar de covarianza/contravarianza cuando se trata de la conversión de genéricos de estos e tipos? ¿O es este un concepto diferente?
¿Hay un nombre para este concepto? ¿Es otro tipo de varianza genérica? – StuperUser