2013-12-14 3 views
2

У меня есть класс, реализующий singleton, один из которых реализует некоторые общие функции для моих таблиц БД и последний, который реализует определенные функции для таблиц.C# a Общий класс другого Generic

так:

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

Проблема заключается в том, что не может пройти T на второй линии к 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>{} 
Смежные вопросы