无法创建 readonly ref struct
的数组在 C# 中是这样的:
public readonly ref struct SomeStruct {}
SomeStruct[] array = new SomeStruct[4];
这会引发编译错误。如何存储
readonly ref struct
的集合?
最佳答案
我认为这就是你所追求的:
struct SomeStruct
{
int Data;
}
static void Main(string[] _)
{
Span<SomeStruct> buffer = stackalloc SomeStruct[5];
ref var someData = ref buffer[1];
}
我会告诫您需要进行概要分析并确保您确实需要做这样的事情。正如其他人所说,您不会将“引用结构”放入集合中,而是将常规结构放入集合中并为它们获取“引用”,因此您不必复制数据。然后您控制分配它们的位置。如果不会引起问题,则在堆栈上,或者您可以使用内存池。
关于c# - 创建只读 ref 结构的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63781029/