1
爲什麼下面的代碼會得到錯誤?無效的差異:類型參數'T'必須在'xxx.Item <T> .GetList()'上不變。 'T'是協變的
無效方差:類型參數 'T' 必須是 不變地有效 'UserQuery.IItem < T> .GetList()'。 'T'是協變的。
public interface IFoo {}
public interface IBar<T> where T : IFoo {}
public interface IItem<out T> where T: IFoo
{
IEnumerable<IBar<T>> GetList();
}
你爲什麼把'IItem'標記爲協變('out T')? – Bartosz
@Bartosz代碼的其他部分需要協變 – ca9163d9