Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Atrybut InlineArrayAttribute został wprowadzony na platformie .NET 8 w celu dodawania adnotacji do typów struktur, które mają jedno pole. Wbudowane struktury tablicowe miały limit rozmiaru 1 mebibajtu (MiB). Jednak ze względu na usterkę limit nie został wymuszony dla wbudowanych struktur tablicy, które mają układ sekwencyjny, który jest również domyślnym układem emitowanym przez język C#. Ta zmiana wymusza limit rozmiaru.
Poprzednie zachowanie
Na platformie .NET 8 można zadeklarować śródliniową strukturę tablicy z dowolnym dodatnim, niezerowym rozmiarem. W skrajnych przypadkach efektywna wielkość była nieprzewidywalna. Na przykład struktura, której rozmiar został zadeklarowany jako Int32.MaxValue + 1, ostatecznie miał rozmiar 1 z powodu zawijania wartości.
Nowe zachowanie
Począwszy od platformy .NET 9, limit rozmiaru 1 miB jest wymuszany.
Wersja wprowadzona
.NET 9 (wersja zapoznawcza 1)
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Ta zmiana naprawia usterkę w implementacji, w której limit rozmiaru nie został wymuszony.
Zalecana akcja
Jeśli masz kod, który używa wbudowanych struktur tablic z bardzo dużymi wystąpieniami przekraczającymi limit, zmniejsz rozmiar tych struktur.