как ссылки на объекты C # представлены в памяти / во время выполнения (в CLR)?

Мне любопытно узнать, как ссылки на объекты C # представлены в памяти во время выполнения (в .NET CLR). На ум приходят следующие вопросы:

  1. Сколько памяти занимает ссылка на объект? Отличается ли он, когда определяется в рамках класса и в рамках метода? Отличается ли место его обитания в зависимости от этой области (стек или куча)?

  2. Каковы фактические данные, хранящиеся в ссылке на объект? Это просто адрес памяти, указывающий на объект, на который он ссылается, или это что-то еще? Отличается ли это в зависимости от того, определено ли оно в рамках класса или метода?

  3. Те же вопросы, что и выше, но на этот раз, когда речь идет о ссылке на ссылку, например, когда ссылка на объект передается методу с помощью ссылка. Как меняются ответы на вопросы 1 и 2?

12
задан chopperdave 29 February 2012 в 03:14
поделиться