Размер TwoSmallObjects
(без учета издержек каждого объекта) составляет всего 8 байтов (16 в 64-битном процессе).Точно так же размер MixedSizeObjects
составляет всего 24 байта (48 на 64-битной).
Итак, чтобы ответить на ваш вопрос, ни один из этих объектов не попадет в LOH.Массивы, на которые они ссылаются, могут зависеть от размера каждого отдельного массива.
Я не могу представить, как будет работать система, которая будет работать так, как вы ожидаете.Особенно с учетом того, что конструктор запускается после выделения объекта.Как распределитель узнает, что вы собираетесь назначить его полям, прежде чем на самом деле это сделать?Должен ли он переместить объект в LOH, если вы это сделаете?Зачем он делает всю эту работу, если ничего не помогает?
Еще одна вещь, которая может помочь: если у вас есть тип ссылочного типа (а массив - один), поле несодержать объект.Он содержит только ссылку .