我无法理解为什么我不能用这个签名调用方法:
public void Test(Tuple<int, IEnumerable<string>> x);
像那样:
Test(Tuple.Create(4, new List<string>()))
我认为这与co / contravariance有关,但这只是猜测。有人可以分享他的聪明才智吗?
答案 0 :(得分:4)
是的,Tuple
类没有被标记为共变或逆变,原因只是接口可以是共变或逆变。因此类型参数必须完全匹配。 Here's the reason why classes can't be co- and contravariant