c# - C#中的'->'运算符,它有什么作用?

标签 c#

<分区>

我一直在研究录音机的源代码,我注意到代码中大量使用了 -> 运算符。例如:

WaveInHeaders[i]->dwUser = IntPtr.Zero;
WaveInHeaders[i]->lpNext = IntPtr.Zero;
WaveInHeaders[i]->reserved = IntPtr.Zero;

我以前从未在 C# 中看到过类似的东西,它让我想起了 C++ 迭代器,但我只想自己弄清楚。那是什么,它有什么作用? (它被用在一个不安全的类中)

最佳答案

这是一个字段访问操作符。它允许您通过指向非托管代码中的结构的指针来访问结构的字段。 this document 中描述了指针上允许的所有运算符.

在这种情况下,WaveInHeaders 是指向结构的指针数组。每个结构有(至少)三个类型的字段 IntPtr - dwUserlpNextreserved

关于c# - C#中的'->'运算符,它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028276/

相关文章:

c# - 试图 int.parse 多数组字符串

c# - 如何创建自定义互斥体

c# - 如何最大限度地提高 C# 中大数组的按元素操作的性能

c# - 来自文件的 BitmapSource

c# - .NET Framework 类的依赖倒置原则

c# - 将 'Which branch?' 字段添加到 TFS 中的工作项

c# - WebSocket 安全连接自签名证书

c# - 垃圾收集时的 native 线程行为

c# - 网格划分示例 -> 网格错误 |探戈计划 |统一

c# - 将 Json 字符串转换为 C# 对象列表