heap” and live with the performance cost of doing so, as long as the value type semantics were maintained.
https://docs.microsoft.com/ru-ru/archive/blogs/ericlippert/the-stack-is-an-implementation-detail-part-one?ranMID=24542&ranEAID=je6NUbpObpQ&ranSiteID=je6NUbpObpQ-wpwze09B9sTru_kahQRXQw&epi=je6NUbpObpQ-wpwze09B9sTru_kahQRXQw&irgwc=1&OCID=AID2000142_aff_7593_1243925&tduid=(ir__joorsvhplokftlhekk0sohz3xm2xl3vz2ty3tgsj00)(7593)(1243925)(je6NUbpObpQ-wpwze09B9sTru_kahQRXQw)()&irclickid=_joorsvhplokftlhekk0sohz3xm2xl3vz2ty3tgsj00
Тогда он их боксит или нет?
@fvnever скажи пару умных слов
Если что, Липперт (определённо это он пишет, ага?) тут рассматривает гипотетическую ситуацию. Среда исполнения и правда формально может делать всё, что захочет, сохраняя при этом видимое поведение программы. Но на практике, в большинстве существующих сегодня production-ready рантаймов, локальные переменные методов структурных типов всегда сохраняются в стек, за некоторыми исключениями (например, если метод асинхронный, если он использует yield return, если переменная попала в замыкание). Никаких ограничений по размеру для сохранения структуры в стек нет, тут ты ошибся (я вижу, что ниже уже пояснили, но решил на всякий случай ещё раз чётко это отметить).
Обсуждают сегодня