0
我對C#相當陌生,遇到了一個問題,我找不到明確的答案。如何傳入一個類型作爲參數,並用它來聲明函數中的變量類型?
我有一個基類「實體」。這個類被幾個「實體」擴展。目前,我有一個知道如何從數據庫加載每種不同類型的「實體」的函數。我想用一個知道如何從數據庫加載基類「實體」的函數來替換所有這些函數。
下面是一個知道如何只加載一種類型「TestPlan」類型的函數示例。
public List<TestPlan> LoadTestPlans()
{
List<TestPlan> testPlans = new List<TestPlan>();
using (ITransaction transaction = session.BeginTransaction())
{
testPlans = (List<TestPlan>)session.CreateCriteria<TestPlan>().List<TestPlan>();
transaction.Commit();
}
return testPlans;
}
我想用這樣的東西來代替它,但我無法弄清楚類型轉換的正確咒語。
public List<Entity> LoadEntities(Type entityType)
{
List<entityType> entities= new List<entityType>();
using (ITransaction transaction = session.BeginTransaction())
{
entities= (List<entityType>)session.CreateCriteria<entityType>().List<entityType>();
transaction.Commit();
}
return entities;
}
我見過一些泛型類型列表,我不知道這是如何工作的。我有點猶豫是否需要使用泛型類型的路線。我想編譯時錯誤,如果你嘗試調用了錯誤類型的傳遞的功能
該文檔:http://msdn.microsoft.com/en-us/library/bb384067.aspx – Miebster 2014-09-27 16:39:19