Diciamo ipoteticamente (leggi: non penso di aver effettivamente bisogno di questo, ma sono curioso quando l'idea mi è saltata in testa), uno voleva una matrice di memoria messa da parte localmente nello stack, non sul mucchio. Per esempio, qualcosa del genere:Gli array basati su stack sono possibili in C#?
private void someFunction()
{
int[20] stackArray; //C style; I know the size and it's set in stone
}
Sto indovinando la risposta è no. Tutto quello che sono riuscito a trovare sono array basati su heap. Se qualcuno avesse bisogno di questo, ci sarebbero dei workaround? C'è un modo per mettere da parte una certa quantità di memoria sequenziale in un modo di tipo "valore"? Oppure le strutture con parametri denominati sono l'unico modo (come il modo in cui lo Matrix struct in XNA ha 16 parametri con nome (M11-M44))?
Hm, che dire di una LinkList primitiva? Nella struct set precedente/next struct dello stesso tipo ... non si ottiene la semantica ICollection, ma potrebbe essere sufficiente per IEnumerable ... – flq
Grazie per la risposta. Sì, sono possibili le LinkedList basate su struct? E hai un'idea del motivo per cui non esiste una opzione di array basato su Safe stack in .NET? – Bob
@Frank: non è possibile farlo: quando provo a compilare una struttura ricorsiva, ottengo un 'CS0523: membro Struct causa un ciclo nel layout della struttura' –
thecoop