Бөлісу құралы:


Применяется ограничение размера структуры встроенного массива

Атрибут InlineArrayAttribute был представлен в .NET 8 для анотации типов структур с одним полем. Встроенные структуры массива имеют ограничение размера до 1 мебибайта (MiB). Однако из-за ошибки ограничение не было применено для встроенных структур массивов, имеющих последовательный порядок, который также является порядком по умолчанию, порождаемым C#. Это изменение применяет ограничение размера.

Предыдущее поведение

В .NET 8 можно объявить структуру встроенного массива с любым положительным, ненулевым размером. В крайних случаях фактический размер был непредсказуемым. Например, структура, размер которой был объявлен как Int32.MaxValue + 1, в итоге оказалась с размером 1 из-за переполнения.

Новое поведение

Начиная с .NET 9, применяется ограничение размера 1 МиБ.

Представленная версия

.NET 9( предварительная версия 1)

Тип разрушающего изменения

Это изменение поведения.

Причина изменения

Это изменение исправляет ошибку в реализации, в которой ограничение размера не было применено.

Если у вас есть код, использующий встроенные структуры массива с очень большими экземплярами, превышающими ограничение, уменьшите размер этих структур.

Затронутые API