2

この署名でメソッドを呼び出すことができない理由に頭を悩ませることはできません。

public void Test(Tuple<int, IEnumerable<string>> x);

そのように:

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

これは共変/反変に関係していると思いますが、それは単なる推測です。誰かが彼の賢さを共有できますか?

4

1 に答える 1

4

はい、Tupleクラスは共変または反変としてマークされていません。その理由は、インターフェイスのみが共変または反変になる可能性があるためです。したがって、型パラメーターは正確に一致する必要があります。クラスが共変および反変になれない理由は次のとおりです。

于 2011-06-22T09:48:48.990 に答える