3
我有一个通用的方法:(简体)为C#泛型类型创建存根方法
public class DataAccess : IDataAccess
{
public List<T> GetEntity<T>()
{
return GetFromDatabase<T>(); //Retrieve from database base on Type parameter
}
}
出于测试目的,我要创建我要“富”应该有一些数据返回存根:
public class DataAccessStub : IDataAccess
{
public List<T> GetEntity<T>()
{
List<Foo> listFoo = new List<Foo>();
Foo foo = new Foo();
foo.Name = "Some Name";
listFoo.Add(foo);
return listFoo; // I want Foo to be returned
}
}
由于T
还没有确定是什么类型的呢,我不能返回List<Foo>
。编译器错误将会发生。那么,如何为这种通用方法编写一个存根?
编辑:改变了一点点的代码。第一种方法将根据类型参数从数据库中检索。第二个是测试的存根。 对不起,我不确定这是否解释我想提到的。
谢谢。
第一个存根有什么问题?调用者需要通过(或者在上下文中)T的值。 – carlosfigueira 2011-06-14 03:13:19
我不明白这个问题,是不是你想要的第一个例子? – 2011-06-14 03:13:38
如果你已经知道它是一个'List',为什么你要把'List '作为返回类型? –
Gabe
2011-06-14 03:20:22