正直に言うと、ここで(この質問の一部として)質問されまし たが、今は別の関連する質問があります。
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のIm!、 では、それについて話しましょう
共分散をすべて尊重して:私が書くとき (c.Foo(lst);
文字 列です!)-lst
IEnumerable
両方の署名が表示されます!!! しかし、それでも-それは選択しますIEnumerable<object>
か?
共分散は具体的なタイプ自体よりも強いですか?