我想替換下面的函數,這個函數幾乎完全相同的副本存在於我的項目中,只有不同的對象類型。我想要做的是傳遞一個對象類型作爲參數。傳遞一個對象類型作爲參數
private void reloadBooks()
{
var books = session.Query.All<Book>();
boklist = new System.ComponentModel.BindingList<Book>(books.ToList<Book>());
lstBooks.ItemsSource = boklist;
}
我在想是這樣的:
private void getRecordsOfType(object objObject)
{
System.ComponentModel.BindingList<objObject.GetType()> recordList = new System.ComponentModel.BindingList<objObject.GetType()>();
var records = session.Query.All<objObject.GetType()>();
recordList = new System.ComponentModel.BindingList<objObject.GetType()>(records.ToList<bjObject.GetType()>());
return recordList;
}
但是,這似乎並沒有工作,我得到以下信息:
「操作員 '<' 不能應用於「方法組」和「System.Type」類型的操作數「
我讀了類似於使用泛型的東西,但我不認爲在這種情況下有用。
那麼你*的*嘗試使用泛型 - 你試圖傳遞'objObject.GetType()'作爲一個泛型類型參數。但是類型參數是在編譯時評估的,而不是執行時間。你應該使*你的*方法通用。 –