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.
Zastosowanie jawne Size do struktury ozdobionej elementem InlineArrayAttribute jest niejednoznaczne i nie jest już obsługiwane w module ładującym typu. Wcześniej określenie jawne Size spowodowałoby zachowanie specyficzne dla implementacji, które może lub może nie odpowiadać oczekiwaniom użytkownika.
Wersja wprowadzona
.NET 10
Poprzednie zachowanie
Wcześniej określanie Size dla struktury oznaczonej atrybutem InlineArrayAttribute było dozwolone, ale powodowało zachowanie specyficzne dla implementacji, które może lub nie musi odpowiadać oczekiwaniom użytkownika.
[InlineArray(8)]
[StructLayout(LayoutKind.Explicit, Size=32)]
struct Int8InlineArray
{
private int _value;
}
Nowe zachowanie
Od .NET 10, ustawianie Size na strukturze ozdobionej atrybutem InlineArrayAttribute jest niedozwolone. Jeśli spróbujesz utworzyć wystąpienie takiej struktury, otrzymasz element TypeLoadException.
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność binarną.
Przyczyna zmiany
Określenie Size dla wbudowanej struktury tablicy jest niejednoznaczne, a każda interpretacja byłaby sprzeczna ze specyfikacją.
Zalecana akcja
W mało prawdopodobnym przypadku, gdy trzeba określić jawny rozmiar dla elementu tablicy lub dla całej tablicy wbudowanej, wprowadź strukturę opakowującą typ elementu lub cały typ tablicy. W układzie wrappera określ odpowiednie ustawienie Size.
Interfejsy API, których dotyczy problem
- Ładowarka typu