Ограничение размера структуры встроенного массива применяется
Атрибут InlineArrayAttribute был представлен в .NET 8 для анотации типов структур с одним полем. Встроенные структуры массива предназначены для ограничения размера 1 mebibyte (MiB). Однако из-за ошибки ограничение не было применено для встроенных структур массива, имеющих последовательный макет, который также является макетом по умолчанию, создаваемым C#. Это изменение применяет ограничение размера.
Прежнее поведение
В .NET 8 можно объявить структуру встроенного массива с любым положительным, ненулевым размером. В крайних случаях действующий размер был непредсказуемым. Например, структуру, размер которой был объявлен как Int32.MaxValue + 1
в конце концов, имеет размер 1 из-за оболочки вокруг.
Новое поведение
Начиная с .NET 9, применяется ограничение размера 1 МиБ.
Представленные версии
.NET 9( предварительная версия 1)
Тип критического изменения
Причина изменения
Это изменение исправляет ошибку в реализации, в которой ограничение размера не было применено.
Рекомендуемое действие
Если у вас есть код, использующий встроенные структуры массива с очень большими экземплярами, превышающими ограничение, уменьшите размер этих структур.