во что компилируются generic объекты? Где-то читал, что одним из приемуществ использования обобщений является то, что при компиляции для ссылочных типов создаются одни метаданные для всех типов (искаверкал, т.к. не помню как именно там звучало), а вот для значимых типов создаются метаданные под каждый тип. Поправьте, пожалуйста.
Всё не так. При компиляции метаданные будут в единственном экземпляре. А вот после JIT будет как ты написал: одна копия кода для реф типов, и по одной дополнительно для каждого value type.
В единственном экземпляре для каждого типа? Или в единственном экземпляре для ссылочных и значимых типов соответственно?
Я написал подробно. Да, нет.
Понял, спасибо
Не подскажите, где можно почитать, почему для ссылочных типов создаётся одна копия кода, а для значимых под каждый тип будет отдельный код?
Спасиб
Наверное, в BotR можно почитать. Кратко: потому, что так написан JIT :)
Троелсен. С примерами на CIL достаточно подробно всё описано. В главе про жизненный цикл объектов и сборку мусора.
Мне всегда нравилась книжка Троелсена, но неужели он настолько хорош, что даже это описал?
Обсуждают сегодня