Ваши утверждения верны, шаблоны C ++ полностью созданы при компиляции, .Net создает необходимые типы во время выполнения.Хотя универсальная типизация должна быть разрешена во время компиляции, сгенерированные классы для MSIL , которые используются и используются повторно, генерируются во время выполнения (хотя и немного иначе для типов значений и ссылочных типов)
Различия между шаблонами C ++ и шаблонами C # (Руководство по программированию в C #)
Шаблоны C # Generics и C ++ - это языковые функции, обеспечивающие поддержку параметризованных типов.Тем не менее, есть много различий между ними.На уровне синтаксиса универсальные шаблоны C # представляют собой более простой подход к параметризованным типам без сложности шаблонов C ++.Кроме того, C # не пытается предоставить все функциональные возможности, которые предоставляют шаблоны C ++. На уровне реализации основное отличие состоит в том, что замены универсального типа в C # выполняются во время выполнения, и информация об универсальном типе, таким образом, сохраняется для экземпляров объектов .
Обобщения вВремя выполнения (Руководство по программированию в C #)
Типы значений
Когда универсальный тип впервые создается с типом значенияв качестве параметра среда выполнения создает специализированный универсальный тип с предоставленным параметром или параметрами, замененными в соответствующих местах в MSIL.Специализированные универсальные типы создаются один раз для каждого уникального типа значения, используемого в качестве параметра.
Типы ссылок
Обобщения работают несколько по-разному дляссылочные типы. При первом создании универсального типа с любым ссылочным типом , среда выполнения создает специализированный универсальный тип со ссылками на объекты, заменяемыми параметрами в MSIL .Затем каждый раз, когда создается экземпляр составного типа со ссылочным типом в качестве параметра, независимо от того, какой это тип, среда выполнения повторно использует ранее созданную специализированную версию универсального типа.Это возможно, потому что все ссылки имеют одинаковый размер.