2013-12-14 113 views
2

我有一個類實現了單例,一個爲我的數據庫表實現一些常用函數,另一個爲表實現特定函數。c#a另一個泛型的泛型類

這樣:

abstract class Singleton<C> where C : class, new() 
class AbstractTable<T> : Singleton<T> 
class myTable: Abstract<myTable> 

的問題是,我不能在第二行的Singleton傳遞噸。

給出的錯誤是CS0452

我如何編寫一個通用的繼承另一個通用?

回答

5

通用約束的問題。如果你對Singleton情況有限制,並且你有該類的泛型繼承者。那麼這個繼承者也應該有相同的約束。

像這樣:

abstract class Singleton<C> where C : class, new(){} 
class AbstractTable<T> : Singleton<T> where T : class, new() { } 
class myTable: AbstractTable<myTable>{}