我有这些接口:
这段代码:
IList<IFinder<IDomainObject>> finders = new List<IFinder<IDomainObject>>();
IFinder<IOrder> orderFinder = this.mocks.StrictMock<IFinder<IOrder>>();
finders.Add(orderFinder);
我在第三行收到此错误:
参数“ 1”:无法从“ Mes.FrameworkTest.Repository.Finders.IFinder >”转换为“ Mes.FrameworkTest.Repository.Finders.IFinder >”
当IOrder从IDomainObject派生时,为什么会出现此错误?
最佳答案
这需要.Net 4对协方差的支持,可以这样表示:
interface IFinder<out T> ...
如果您没有.Net 4(VS 2010),那您就不走运了。
关于c# - 将派生接口(interface)添加到通用接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3676448/