Действительно ли основанные на стеке массивы возможны в C#?

Скажем, гипотетически (чтение: Я не думаю, что мне на самом деле нужно это, но мне любопытно как идея, вытолканная в мою голову), каждый хотел массив памяти, отложенной локально на стеке, не на "куче". Например, что-то вроде этого:

private void someFunction()
{
    int[20] stackArray; //C style; I know the size and it's set in stone
}

Я предполагаю, что ответ нет. Все, что я смог найти, является основанными на "куче" массивами. Если бы кому-то должно было быть нужно это, то там были бы какие-либо обходные решения? Там какой-либо путь состоит в том, чтобы отложить определенное количество последовательной памяти в "типе значения" путь? Или являются структуры с именованными параметрами единственным путем (как способ, которым Матричная структура в XNA 16 назвала параметры (M11-M44))?

6
задан Bob 16 March 2010 в 16:16
поделиться

1 ответ

То, что вам нужно, это stackalloc; к сожалению, вы можете использовать его только в небезопасном коде, что означает, что он не будет работать в контексте ограниченных разрешений.

Вы также можете создать struct с необходимым количеством переменных в нем для каждого типа элемента, но вам понадобится новый тип для каждого размера 'массива', который вы хотите использовать

.
4
ответ дан 17 December 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: