我有一个实现单例的类,一个为我的数据库表实现一些常用函数的类,以及实现表的特定函数的最后一个。
这样:
abstract class Singleton<C> where C : class, new()
class AbstractTable<T> : Singleton<T>
class myTable: Abstract<myTable>
问题在于我无法将第二行中的T传递给Singleton。
给出的错误是CS0452
如何编写继承另一个泛型的泛型?
答案 0 :(得分:5)
通用约束的问题。如果您对Singleton案例有约束,并且您拥有该类的Generic继承者。那么这个继承者也应该有相同的约束。
像这样:
abstract class Singleton<C> where C : class, new(){}
class AbstractTable<T> : Singleton<T> where T : class, new() { }
class myTable: AbstractTable<myTable>{}