有没有办法在 C# 中将 IntPtr / void* 转换为 ref SomeStruct?

Is there any way to convert IntPtr / void* to ref SomeStruct in C#?

主题。用例是:假设我有一个非托管缓冲区,用于存储 SomeStruct 的 N 个实例。所以在这个缓冲区中有一个地址,有没有办法把这个地址转换成 ref SomeStruct——例如能够直接更新这些结构?

P.S。我知道即将推出的 Span<T> 类型。我很好奇现在是否有任何方法可以在 C# 中做类似的事情。

好的,找到答案:System.Runtime.CompilerServices.Unsafe.AsRef<T>解决了问题。更多相关信息:http://adamsitnik.com/ref-returns-and-ref-locals/