Где ссылка создается из кода ⇒ IL или IL ⇒ нативный код - PullRequest
3 голосов
/ 16 января 2020

Я изо всех сил пытаюсь найти, где будет создана ссылка для объекта и на каком этапе он будет создан От программы к промежуточному коду или Промежуточный код к собственному коду .

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Эта статья может помочь :

Как правило, приложения, нацеленные на. NET Framework, компилируются на промежуточный язык (IL). Во время выполнения JIT-компилятор преобразует IL в собственный код. Напротив, NET Native компилирует Windows приложений непосредственно в собственный код.

Так что, как видите, IL даже не является обязательным условием, его можно полностью опустить (хотя в большинстве случаев не должен)

Как упомянуто в руководстве по CLR :

Среда выполнения автоматически обрабатывает расположение объектов и управляет ссылками на объекты, освобождая их, когда они больше не используются. Объекты, время жизни которых управляется таким образом, называются управляемыми данными. Сборка мусора устраняет утечки памяти, а также некоторые другие распространенные ошибки программирования.

Так как перед запуском исполняемый код превращается в собственный код и объекты создаются, я думаю, что он отвечает на ваш вопрос.

2 голосов
/ 16 января 2020

Объекты фактически создаются во время выполнения, ваш код - всего лишь инструкция для его создания, ваш код будет скомпилирован в IL , когда вы его скомпилируете.

Тогда среда выполнения ( JIT-компилятор ) будет интерпретировать этот код в нативный код, в любом случае все это на самом деле не создает ваши объекты. объекты и ссылки на него будут созданы только тогда, когда процессор выполнит интерпретированный код и сохранит некоторое значение в памяти.

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