我試圖重構一些代碼,因爲我有大約7出現這樣的代碼的特性:傳遞類在C#中的參數,然後想訪問
List<RHEvent> eventResults = DBConnection.Table<RHEvent>().Where(t => (int)t.PreferredImage == ID).ToList();
foreach (RHEvent result in eventResults)
{
result.PreferredImage = 0;
DBConnection.Update(result);
}
其中RHEvent更改爲不同的類名稱通過不同的事件。
我已經開始嘗試編寫更通用的代碼,但我遇到了一個障礙。以下是我到目前爲止有:
private void ResetPreferredImage<T>(int ID) where T: new()
{
List<T> results = DBConnection.Table<T>().Where(t => (int)t.PreferredImage == ID).ToList();
}
的問題是,編譯器不喜歡PreferredImage因爲它不能識別它的抽象類。
有沒有辦法讓編譯器確認該屬性是否存在,或者是否無法做到我正在嘗試做的事情?
謝謝。
菲利普
你的類將所有需要實現定義的'PreferredImage'特性的通用接口。 –
來自定義PreferredImage的某個基類的接口或繼承。當然,如果你使用某種ORM,你可能會有自動生成的POCO,這可能會使這一點變得更加困難。我不會推薦反思方法,但可以這樣做。 – cgotberg
是你使用任何一種ORM –