c#另一个Generic的泛型类

时间:2013-12-14 16:31:18

标签: c# generics inheritance

我有一个实现单例的类,一个为我的数据库表实现一些常用函数的类,以及实现表的特定函数的最后一个。

这样:

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

问题在于我无法将第二行中的T传递给Singleton。

给出的错误是CS0452

如何编写继承另一个泛型的泛型?

1 个答案:

答案 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>{}