c# - 创建只读 ref 结构的集合

标签 c# .net

无法创建 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/

相关文章:

c# - 如何引用某些 Windows 元素(滚动条、插入式选项按钮等)使用的 BG 颜色?

c# - namespace 未被识别?

c# - SQL 批量存储过程调用 C#

c# - 这个棕褐色调转换算法有什么问题?

c# - 如何将用户/权限关系定义为 M :M?

c# - 强制 C# 应用程序在 64 位服务器上以 32 位模式运行

c# - 如何连接到 .NET 框架内的 MySQL 数据库?

c# - 将 Task 转换为 Task<Unit> 的最有效方法?

c# - 在运行时更新 NLog 目标文件名

c# - EF/Linq - 在分组之前对集合进行排序