Die Größenbeschränkung der Inlinearraystruktur wird erzwungen.
Das InlineArrayAttribute-Attribut wurde in .NET 8 eingeführt, um Strukturtypen mit einem einzelnen Feld zu kommentieren. Inlinearray-Strukturen sollten eine Größenbeschränkung von 1 Mebibyte (MiB) aufweisen. Aufgrund eines Fehlers wurde der Grenzwert jedoch nicht für Inlinearray-Strukturen erzwungen, die ein sequenzielles Layout aufweisen, das auch das Standardlayout ist, das von C# ausgegeben wird. Diese Änderung erzwingt die Größenbeschränkung.
Vorheriges Verhalten
In .NET 8 können Sie eine Inlinearraystruktur mit jeder positiven, ungleich Nullgröße deklarieren. In extremen Fällen war die effektive Größe unvorhersehbar. Beispielsweise eine Struktur, deren Größe als Int32.MaxValue + 1
deklariert wurde, die aber am Ende aufgrund der Umschließung eine Größe von 1 hat.
Neues Verhalten
Ab .NET 9 wird die Größenbeschränkung von 1 MiB erzwungen.
Eingeführt in Version
.NET 9 Preview 1
Typ des Breaking Changes
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Diese Änderung behebt einen Fehler in der Implementierung, bei dem die Größenbeschränkung nicht erzwungen wurde.
Empfohlene Maßnahme
Wenn Sie Code haben, der Inlinearray-Strukturen mit sehr großen Instanzen verwendet, die den Grenzwert überschreiten, verringern Sie die Größe dieser Strukturen.
Betroffene APIs
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für