我无法理解为什么我不能用这个签名调用方法:
public void Test(Tuple<int, IEnumerable<string>> x);
像那样:
Test(Tuple.Create(4, new List<string>()))
我认为这与协/逆变有关,但这只是一个猜测。有人可以分享他的聪明吗?
我无法理解为什么我不能用这个签名调用方法:
public void Test(Tuple<int, IEnumerable<string>> x);
像那样:
Test(Tuple.Create(4, new List<string>()))
我认为这与协/逆变有关,但这只是一个猜测。有人可以分享他的聪明吗?
是的,Tuple
该类没有被标记为协变或逆变,原因是只有接口可以是协变或逆变的。所以类型参数必须完全匹配。这就是为什么类不能是 co- 和 contravariant 的原因。