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