將顯式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
- 類型裝載機