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

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

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

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

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

Ответы на вопрос(2)

Ваш ответ на вопрос