我需要在这方面一些建议/帮助,我已经看不出树木和森林的区别了。
这是一系列直接实现某些使用通用类型的接口的类。
然后,我试图将具体类型进行转换,例如:
希望这能对某些人有所帮助,感谢所有提供帮助的人!
这是一系列直接实现某些使用通用类型的接口的类。
然后,我试图将具体类型进行转换,例如:
MyGenericObject<SomeObject> _obj;
IMyGenericObject<ISomeObject> _genObj = (IMyGenericObject<ISomeObject>)_obj;
// 无效的转换
我读过一些有关协变和逆变的文章,但是并不太清楚为什么这样做是不可能的,或者如何解决它?
所以,在这个例子中:
public interface IMyObject<in T> where T : IBaseObject
{
T Activity { get; set; }
}
无法工作,因为您无法获取和设置Activity属性。
在这个例子中,我需要执行以下操作:
public interface IMyObject<out T> where T : IBaseObject
{
T Activity { get; }
}
希望这能对某些人有所帮助,感谢所有提供帮助的人!