我正在查看Roslyn ObjectPool实现(https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/SharedCollections/ObjectPool%601.cs),但我不明白为什么它们没有选择直接使用T数组,而是将T包装在结构体中?
这是什么目的?
[DebuggerDisplay("{Value,nq}")]
private struct Element
{
internal T Value;
}
...
private readonly Element[] _items;
这是什么目的?
Value
。但是没有任何代码会覆盖数组中的元素。鉴于Value
是一个字段,在运行时没有类型检查,这使得你的答案无效。不是吗? - Sriram Sakthivel