我有一个通用的界面。
public interface IModel<T>
{
List<T> ReadModelInfo();
.....
}
现在我有2个特定的类来实现该接口IModel<T>
。
Class IceModel<T> : IModel<T>
{
List<T>ReadModelInfo<T>()
{
List<Product> pdList = GetList()
return pdList as List<T>();
}
}
方法ReadModelInfo()
会抛出错误:
作为无效的表达术语&#39;)&#39; :预期和)预期。
有没有人知道如何从特定列表中返回通用列表?
答案 0 :(得分:2)
所以简单的答案是:
return pdList.Cast<T>().toList()
但显然这只有在T是Product或Product的超类时才有效,所以这表明您的设计可能存在问题。
答案 1 :(得分:1)
这看起来像是对通用类型的错误使用。
class IceModel<T> : IModel<T>
应该可以用
代替class IceModel : IModel<Product>
这样可以更自然地实现界面(这似乎是你想要做的事情吗?)
class IceModel : IModel<Product>
{
List<Product> ReadModelInfo()
{
List<Product> pdList = GetList()
return pdList;
}
}