Sto osservando l'implementazione di Roslyn ObjectPool (https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/SharedCollections/ObjectPool%601.cs) e non capisco perché non hanno semplicemente scelto di avere una matrice di T ma invece di avvolgere T in una struttura?Strutturazione struct Objectollolo Roslyn
[DebuggerDisplay("{Value,nq}")]
private struct Element
{
internal T Value;
}
...
private readonly Element[] _items;
Qual è lo scopo di questo?
Ma 'ObjectPool' laggiù non imposta alcun elemento nell'array. Si basa sul fatto che la matrice di struct è inizializzata con istanze di struct azzerate. –
Bene, * qualcosa * sta per impostare 'Valore'. Che senso ha se niente mai lo apprezza ?! Quel codice non è mostrato qui. – usr
Sì, qualche codice imposta il campo "Valore". Ma nulla sovrascrive l'elemento in un array. Dato che 'Value' è un campo, non esiste un tipo che ci controlli in runtime. invalida la tua risposta. Non è vero? –