Ответ 1
Одна ссылка либо занимает 4 байта в 32-битных процессах, либо 8 байтов в 64-битных процессах. Ссылка - это стандартная служебная нагрузка на классы (поскольку они являются ссылочными типами). Структуры не содержат ссылок (ну, игнорируя любой потенциальный бокс) и обычно являются их содержимым. Я не могу вспомнить, имеют ли классы дополнительные накладные расходы, не думайте так.
Этот вопрос затрагивает класс vs struct (также представленный в комментариях к вопросу):
Использует ли "новый" на структуре выделяете его в кучу или стек?
Как указано в комментариях, только экземпляры класса будут использовать эту служебную информацию и только тогда, когда есть ссылка. Когда ссылок нет, элемент становится доступным для GC - я не уверен, какой размер класса находится в куче без каких-либо ссылок, я бы предположил, что это размер его содержимого.
Действительно, классы не имеют истинного "размера", на который можно положиться. И наиболее важно, это не должно быть решающим фактором при использовании классов или структур (но вы склонны находить рекомендации о том, что типы на уровне или ниже примерно 16 байтов могут быть подходящими структурами, а выше имеет тенденцию к классам). Для меня решающим фактором является использование.
Когда я говорю о структурах, я чувствую себя обязанным предоставить следующую ссылку: Почему изменчивые структуры "злые" ?