我需要一个固定的数据结构(出于性能原因)在堆栈上进行管理,但其行为类似于数组
我知道我可以创建以下内容:
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];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句