CO /逆变?元组<string,ienumerable <string =“”>&gt;不满意List <string> </string> </string,>

时间:2011-06-22 09:39:18

标签: ienumerable covariance contravariance

我无法理解为什么我不能用这个签名调用方法:

public void Test(Tuple<int, IEnumerable<string>> x);
像那样:

Test(Tuple.Create(4, new List<string>()))

我认为这与co / contravariance有关,但这只是猜测。有人可以分享他的聪明才智吗?

1 个答案:

答案 0 :(得分:4)

是的,Tuple类没有被标记为共变或逆变,原因只是接口可以是共变或逆变。因此类型参数必须完全匹配。 Here's the reason why classes can't be co- and contravariant