(我检查了这一点为自己,但我没有VS2010(还))是C#4.0元组协
说我有2个基本接口:
IBaseModelInterface
IBaseViewInterface
和2接口实现那些:
ISubModelInterface : IBaseModelInterface
ISubViewInterface : IBaseViewInterface
如果我定义了一个Tuple<IBaseModelInterface, IBaseViewInterface>
我想设置基于一个工厂,返回Tuple<ISubModelInterface, ISubViewInterface>
的结果。
在C#3,即使子接口实现的基本接口,我不能做到这一点。我敢肯定,如果我使用IEnumerable<IBaseModelInterface>
,C#4可以让我这样做,因为它现在用in
关键字定义,以允许协变。那么Tuple
是否允许我这样做?
从什么(小)据我了解,协方差只允许在接口上,这是否意味着需要有一个ITuple<T1, T2>
接口?这是否存在?
请注意,“in”关键字允许*反差*,而不是*协方差*。 IEnumerable被标记为* out *,因为* T来自IEnumerable *。 –
2010-05-20 14:16:15