屬性 InlineArrayAttribute 是在 .NET 8 中引進,以標註具有單一字段的結構類型。 內嵌陣列結構本來是要有一兆字節(MiB)的大小限制。 不過,由於程式錯誤,具有循序配置的內嵌陣列結構未能強制執行限制,而這也是 C# 發出時的預設配置。 這項變更會強制執行大小限制。
先前的行為
在 .NET 8 中,您可以宣告正數且非零大小的內聯陣列結構。 在極端情況下,有效大小無法預測。 例如,一個其大小宣告為Int32.MaxValue + 1的結構,由於環繞效應,最終其大小變為 1。
新行為
從 .NET 9 開始,會強制執行 1 MiB 的大小限制。
推出的版本
.NET 9 Preview 1
破壞性變更的類型
此變更為行為變更。
變更的原因
這項變更修正了實作中未強制執行大小限制的錯誤。
建議的動作
如果您有使用內嵌陣列結構的程式碼,而這些結構的實例非常大以至於超過限制,請縮小這些結構的大小。