gpt4 book ai didi

c# - 在堆栈上创建固定大小的数组

转载 作者:行者123 更新时间:2023-11-30 15:26:42 24 4
gpt4 key购买 nike

我需要一个固定的数据结构(出于性能原因)在堆栈上进行管理,但表现得像一个数组

我知道我可以创建这样的东西:

using System;

namespace X
{
public sealed struct CustomArray<T>
{
private const Int32 n = 2;

private T _field_1;
private T _field_2;
// ...
private T _field_n;

public T this[Int32 idx]
{
get
{
switch(idx)
{
case (0): return _field_1;
case (1): return _field_2;
// ...
case (n): return _field_n;

default: throw new IndexOutOfRangeException();
}
}
set
{
switch(idx)
{
case (0): _field_1 = value; break;
case (1): _field_2 = value; break;
// ...
case (n): _field_n = value; break;

default: throw new IndexOutOfRangeException();
}
}
}
}
}

但这对于由大约 50 个元素组成的结构来说并不是很方便。有没有办法以更方便和可维护的方式实现这一目标?

提前致谢

最佳答案

您可以使用 stackalloc 在堆栈中分配一个数组关键字,似乎它将满足您的堆栈分配需求。不幸的是,它要求您处于不安全的环境中。

int* block = stackalloc int[100];

关于c# - 在堆栈上创建固定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28848530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com