Короткий ответ: нет .
Он не подходит для работы обобщений C #, в отличие от шаблонов C ++.
Обобщения .netэто не языковая функция, а функция времени выполнения.Среда выполнения знает, как создавать экземпляры обобщенных типов из специального универсального байт-кода, который довольно ограничен по сравнению с тем, что могут описывать шаблоны C ++.
Сравните это с шаблонами C ++, которые в основном создают экземпляр всего AST класса, используя замещенные типы.Можно было бы добавить инстанцирование на основе AST во время выполнения, но это, безусловно, было бы намного сложнее, чем текущие генерики.
Без таких функций, как массивы типов значений (которые существуют только в небезопасном коде),Рекурсивная реализация шаблона или специализация шаблона с использованием таких параметров также не будет очень полезной.