我需要一些建議/幫助,我不能再看到樹木。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; }
}
希望幫助別人,並感謝所有幫助!
請顯示接口的定義 –