标签: c# generics generic-collections
为什么IEnumerable的通用参数是协变的,而IList不是?所以,鉴于此:
class base1 {} class derived : base1 {} var list1 = new List<derived>();
我可以这样做:
IEnumerable<base1> list3 = list1;
但不能这样做:
IList<base1> list2 = list1;
我只是想知道为什么IList的限制是从IEnumerable派生的,这是协变的