强制ObservableCollection <t>集合以获取特定类型</t>

时间:2014-08-05 11:40:56

标签: c# .net-3.5

我的基类中有这个泛型方法:

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;”中是不可能的。

1 个答案:

答案 0 :(得分:2)

我猜你在这个方法中使用collection做了一些事情(可能显示了成员),但在Show方法中重新分配集合绝对不是一个好主意。检查方法之外的类型Language,并传递正确的集合以显示。

BTW:您需要检查T类型语言,而不是集合。