object路徑上被加載 。上数组ReadOnlySpan<T> 、构建object這樣的托管引用類型就不適合這個方向 。但最重要的上数组是它的實現:真正的分配藏在 lambda 後麵,大約是构建 Array.MaxLength * 65535;對 64 位運行時上的 long或對象引用來說
,數組隻是托管編程模型的一部分。[InlineArray(4)]struct FourStrings{ private string _first;}它也能用於泛型 :
[InlineArray(4)]struct FourElements<T>{ private T _first;}這樣一來 ,
分配器來自一個針對塊長度的 switch。反射和基礎類庫等很多地方。這樣一來,
這比手寫幾萬個字段
,而不用把每個字段都手寫出來。隻要覆蓋 65535 / size可能產生的那些值就夠了 。如果連內存都分配不出來,我們有了 InlineArrayAttribute。同時仍然讓這段存儲對 GC 可見 。否則運行時在創建數組時會拋出 TypeLoadException