我的基类中有这个泛型方法:
protected void Show<T>(ObservableCollection<T> collection)
{
StatusText = Resource.loadingData;
if (collection is ObservableCollection<Language>)
{
collection = DBService.GetLanguages();
}
StatusText = string.Empty;
}
如果集合的类型是语言,我想强制集合引用DBService.GetLanguages()的返回ObservableCollection<Language>
。
但是编译器说:
“System.Collections.ObjectModel.ObservableCollection&lt; DataModel.Language&gt;”的隐式转换在“System.Collections.ObjectModel.ObservableCollection&lt; T&gt;”中是不可能的。
答案 0 :(得分:2)
我猜你在这个方法中使用collection
做了一些事情(可能显示了成员),但在Show
方法中重新分配集合绝对不是一个好主意。检查方法之外的类型Language
,并传递正确的集合以显示。
BTW:您需要检查T
类型语言,而不是集合。