Necesito algún consejo/ayuda sobre esto, ya no puedo ver la madera de los árboles.C# genéricos de lanzamiento (¿covarianza y contravarianza?)
Es una serie sencilla de clases que implementan algunas interfaces utilizando genéricos.
entonces estoy tratando de emitir los tipos de hormigón, por ejemplo:
MyGenericObject<SomeObject> _obj;
IMyGenericObject<ISomeObject> _genObj = (IMyGenericObject<ISomeObject>)_obj;
// no válida fundido
He leído algunos artículos sobre covarianza y contravarianza pero no demasiado claro por qué este wouldn' ser posible, o cómo esquivarlo?
Por lo tanto, en este ejemplo:
public interface IMyObject<in T> where T : IBaseObject
{
T Activity { get; set; }
}
no funcionaría ...
.... porque, no se puede obtener y establecer la propiedad Actividad .
En este ejemplo, que tenía que hacer:
public interface IMyObject<out T> where T : IBaseObject
{
T Activity { get; }
}
esperanza de que ayude a alguien, y gracias a todos por la ayuda!
Por favor, muestre la definición de su interfaz –