我有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
的其他任何父类型,例如ICollection
,Years Employed
。