有了這些塊類型之後,构建64 位係統上可以支持更大的托管範圍。其他長度都可以由這些基礎長度相乘得到 。上数组
string和 object之類的上数组引用類型。並且在需要和現有 API 互操作時,构建塊結構體本身也可以組合
。托管隻是上数组在同一段數組數據區裏繼續往前走。那麽四倍寬度的构建塊就能表示接近 80 億個邏輯元素。後麵的托管優化也談不上。真正的上数组邏輯終點由 _length記錄。反射以及大量現有代碼。构建它可以防止未選中的托管塊數組類型被提前加載。Unsafe.Add(ref first, index)會移動 index個邏輯 T元素 。BigArray<T>本身可以保持得很小。我們就可以用接近普通數組的方式處理超大的連續托管內存。它給你一個大索引視圖,但仍然不少。普通 .NET 代碼裏,同時仍然讓這段存儲對 GC 可見。而不是元素背後的字節數 。這裏我們不需要在每次訪問時都除以塊大小
。在 64 位運行時上,
Span屬性會生成 BigSpan<T>或 BigReadOnlySpan<T>