Шаблон C # в качестве базового типа?если не .как? - PullRequest
0 голосов
/ 21 июня 2011
class Beta : IBeta

class AlphaBeta<TBeta> : TBeta
    where Tbeta : IBeta

Tbeta должен быть типом ... ошибка компилятора.

как я могу сделать AlphaBeta бета-версией?

ти

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Вы не можете этого сделать - универсальные шаблоны в .NET отличаются от шаблонов в C ++.

Вы можете присвоить AlphaBeta переменную-член типа TBeta, но не можетесделайте это производным от TBeta.

Если вы можете дать больше информации о том, что вы пытаетесь сделать на уровне «большей картины», мы можем оказать дополнительную помощь,Будет ли реализация IBeta приемлемой вместо этого?

2 голосов
/ 21 июня 2011

Я бы предложил

    class AlphaBeta<T> : Beta
        where T : IBeta

Потому что T - это обработчик универсального типа C #. Затем вы используете ограничения, чтобы заставить T быть классом, который наследует класс IBeta.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...