1) Нет, здесь нет бокса.
2) a
будет в куче, хотя это деталь реализации
3) Нет, b
в A
не в штучной упаковке
4) b
в A
будет жить там, где будет жить содержащий A
(поэтому с локальной переменной типа A
она обычно будет в стеке; с переменной экземпляра такого класса, как B
или любая статическая переменная, она будет в куче); опять же, это деталь реализации
5) b
в B
тоже не в штучной упаковке
6) b
в B
будет в куче - снова деталь реализации
Здесь не происходит никакого бокса, поскольку вы не показали ничего, пытаясь использовать значение типа значения в качестве значения ссылочного типа (например, object
или интерфейс).
Опять же, различие между стеком и кучей - это деталь реализации. Вам следует прочитать сообщения в блоге Эрика Липперта на тему .