Digamos, hipotéticamente (léase: no creo que realmente lo necesite, pero siento curiosidad cuando la idea me vino a la cabeza), uno quería una gran cantidad de memoria guardada localmente en la pila, no en el montón. Por ejemplo, algo como esto:¿Son posibles las matrices basadas en la pila en C#?
private void someFunction()
{
int[20] stackArray; //C style; I know the size and it's set in stone
}
Supongo que la respuesta es no. Todo lo que he podido encontrar son matrices basadas en montones. Si alguien necesitara esto, ¿habría alguna solución? ¿Hay alguna manera de apartar una cierta cantidad de memoria secuencial en una forma de "tipo de valor"? ¿O son las estructuras con parámetros nombrados la única forma (como la forma en que el Matrix struct en XNA tiene 16 parámetros nombrados (M11-M44))?
Hm, ¿qué tal un LinkedList primitivo? En su struct set struct anterior/siguiente del mismo tipo ... no obtiene la semántica de ICollection, pero podría ser suficiente para IEnumerable ... – flq
Gracias por la respuesta. Sí, ¿son posibles LinkedLists basadas en struct? ¿Y tienes una idea de por qué no hay una opción de matriz basada en pila segura en .NET? – Bob
@Frank: No puede hacer esto: cuando intento compilar una estructura recursiva, obtengo un 'CS0523: miembro de Struct provoca un ciclo en el diseño de la estructura' –
thecoop