共用方式為


指定不允許使用 InlineArray 的明確結構大小

將顯式Size套用至使用InlineArrayAttribute修飾的結構是模稜兩可的,因此類型載入器不再支援。 先前,指定明確 Size 會導致實作特定的行為,可能會或可能不符合使用者預期。

推出的版本

.NET 10

先前的行為

先前,允許在裝飾的結構Size上指定InlineArrayAttribute,但會導致特定的實作行為,可能符合或不符合使用者預期。

[InlineArray(8)]
[StructLayout(LayoutKind.Explicit, Size=32)]
struct Int8InlineArray
{
    private int _value;
}

新行為

從 .NET 10 開始,不允許在帶有Size屬性的結構上指定InlineArrayAttribute。 如果您嘗試建立此類結構的實例,您將獲得一個 TypeLoadException.

破壞性變更的類型

此變更可能會影響 二進位相容性

變更的原因

Size指定內嵌陣列結構是模稜兩可的,任何解釋都會與規範相矛盾。

在不太可能的情況下,您需要為陣列元素或整個內嵌陣列指定明確大小,引入包裝元素類型或整個陣列類型的結構。 在包裝函式的版面配置中,請相應地指定 Size

受影響的 API

  • 類型裝載機