我需要一些建议/帮助,我不能再看到树木。C#铸造泛型(协方差和逆变?)
这是一个简单的系列类,实现了一些使用泛型的接口。
然后我尝试投放的具体类型,例如:
MyGenericObject<SomeObject> _obj;
IMyGenericObject<ISomeObject> _genObj = (IMyGenericObject<ISomeObject>)_obj;
//无效的转换
我读过有关协变和逆变,但也不是太清楚了一些文章为什么这止跌”不可能,或者如何避免它?
所以,在这个例子:
public interface IMyObject<in T> where T : IBaseObject
{
T Activity { get; set; }
}
是行不通的......
....因为,你不能获取和设置活动属性。
在这个例子中,我需要做的:
public interface IMyObject<out T> where T : IBaseObject
{
T Activity { get; }
}
希望帮助别人,并感谢所有帮助!
请显示接口的定义 –