<分区>
我一直在研究录音机的源代码,我注意到代码中大量使用了 ->
运算符。例如:
WaveInHeaders[i]->dwUser = IntPtr.Zero;
WaveInHeaders[i]->lpNext = IntPtr.Zero;
WaveInHeaders[i]->reserved = IntPtr.Zero;
我以前从未在 C# 中看到过类似的东西,它让我想起了 C++ 迭代器,但我只想自己弄清楚。那是什么,它有什么作用? (它被用在一个不安全的类中)
标签 c#
<分区>
我一直在研究录音机的源代码,我注意到代码中大量使用了 ->
运算符。例如:
WaveInHeaders[i]->dwUser = IntPtr.Zero;
WaveInHeaders[i]->lpNext = IntPtr.Zero;
WaveInHeaders[i]->reserved = IntPtr.Zero;
我以前从未在 C# 中看到过类似的东西,它让我想起了 C++ 迭代器,但我只想自己弄清楚。那是什么,它有什么作用? (它被用在一个不安全的类中)
最佳答案
这是一个字段访问操作符。它允许您通过指向非托管代码中的结构的指针来访问结构的字段。 this document 中描述了指针上允许的所有运算符.
在这种情况下,WaveInHeaders
是指向结构的指针数组。每个结构有(至少)三个类型的字段 IntPtr
- dwUser
、lpNext
和 reserved
。
关于c# - C#中的'->'运算符,它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028276/