为什么将List <mytype>强制转换为IEnumerable <object>时,ObservableCollection <mytype>不强制转换为ObservableCollection <object>?

时间:2019-03-11 12:09:45

标签: c# observablecollection

我有2种方法,它们采用一个输入参数,其类型为IList,一种为ObservableCollection类型。

public void GetList(IEnumerable<object> list)
{
}

public void GetCollection(ObservableCollection<object> collection)
{
}

我有自己的名字MyType。

public class MyType
{
}

现在我有2个MyType的集合。类型为IList的一种和类型为ObservableCollection的一种,如下所示

List<MyType> list = new List<MyType>();
ObservableCollection<MyType> collection = new ObservableCollection<MyType>();

现在有了这2个集合,我将上述2个方法称为

GetList(list);

上面的一个有效,但下面的一个无效。

GetCollection(collection);

它将引发错误

  

无法从'System.Collections.ObjectModel.ObservableCollection '转换为'System.Collections.ObjectModel.ObservableCollection <对象>'

为什么默认情况下不进行此转换?对于ObservableCollection,我只能将输入参数设为IEnumerable<object>。我无法在ObservableCollection下面给出IEnumberable之下的Collection的其他任何父类型,例如ICollectionYears Employed

0 个答案:

没有答案