共用方式為


強制執行內嵌陣列結構大小限制

屬性 InlineArrayAttribute 是在 .NET 8 中引進,以標註具有單一字段的結構類型。 內嵌陣列結構本來是要有一兆字節(MiB)的大小限制。 不過,由於程式錯誤,具有循序配置的內嵌陣列結構未能強制執行限制,而這也是 C# 發出時的預設配置。 這項變更會強制執行大小限制。

先前的行為

在 .NET 8 中,您可以宣告正數且非零大小的內聯陣列結構。 在極端情況下,有效大小無法預測。 例如,一個其大小宣告為Int32.MaxValue + 1的結構,由於環繞效應,最終其大小變為 1。

新行為

從 .NET 9 開始,會強制執行 1 MiB 的大小限制。

推出的版本

.NET 9 Preview 1

破壞性變更的類型

此變更為行為變更

變更的原因

這項變更修正了實作中未強制執行大小限制的錯誤。

如果您有使用內嵌陣列結構的程式碼,而這些結構的實例非常大以至於超過限制,請縮小這些結構的大小。

受影響的 API