gpt4 book ai didi

c# - 将派生接口(interface)添加到通用接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 22:19:34 25 4
gpt4 key购买 nike

我有这些接口(interface):

alt text

还有这段代码:

IList<IFinder<IDomainObject>> finders = new List<IFinder<IDomainObject>>();
IFinder<IOrder> orderFinder = this.mocks.StrictMock<IFinder<IOrder>>();
finders.Add(orderFinder);

我在第三行收到这个错误:

Argument '1': cannot convert from 'Mes.FrameworkTest.Repository.Finders.IFinder<Mes.FrameworkTest.DomainModel.IOrder>' to 'Mes.FrameworkTest.Repository.Finders.IFinder<Mes.FrameworkTest.DomainModel.IDomainObject>'

当 IOrder 派生自 IDomainObject 时,为什么会出现此错误?

最佳答案

这需要 .Net 4 对协变的支持,可以这样表示:

interface IFinder<out T> ...

如果您没有 .Net 4 (VS 2010),那您就不走运了。

关于c# - 将派生接口(interface)添加到通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com