老实说,我在这里问过(这个问题的一部分), 但现在我有一个不同的相关问题。
public class Base
{
public void Foo(IEnumerable<string> strings) { }
}
public class Child : Base
{
public void Foo(IEnumerable<object> objects) { }
}
List<string> lst = new List<string>();
lst.Add("aaa");
Child c = new Child();
c.Foo(lst);
(n C# 3 它将调用:Base.Foo
在 C# 4 中它将调用Child.Foo
:)
我在FW4!, 让我们来谈谈它
尊重协方差:当我写 c.Foo(lst);
( lst
是IEnumerable
字符串!) -
它看到两个签名!但仍然 - 它选择了IEnumerable<object>
??
协方差是否比具体类型本身更强?