有没有办法在 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/
主题。用例是:假设我有一个非托管缓冲区,用于存储 SomeStruct
的 N 个实例。所以在这个缓冲区中有一个地址,有没有办法把这个地址转换成 ref SomeStruct
——例如能够直接更新这些结构?
P.S。我知道即将推出的 Span<T>
类型。我很好奇现在是否有任何方法可以在 C# 中做类似的事情。
好的,找到答案:System.Runtime.CompilerServices.Unsafe.AsRef<T>
解决了问题。更多相关信息:http://adamsitnik.com/ref-returns-and-ref-locals/