我一直在查看录音机的源代码,我注意到代码在代码中使用了->
运算符。例如:
WaveInHeaders[i]->dwUser = IntPtr.Zero;
WaveInHeaders[i]->lpNext = IntPtr.Zero;
WaveInHeaders[i]->reserved = IntPtr.Zero;
我以前从未在C#中看到过这样的东西,它让我想起了C ++迭代器,但我只是想让自己清楚一点。那是什么,它做了什么? (它用于不安全的课程)
答案 0 :(得分:4)
这是一个现场访问运营商。它允许您通过指向非托管代码中该结构的指针来访问结构的字段。允许指针的所有运算符都在this document中描述。
在这种情况下,WaveInHeaders
是一个指向结构的指针数组。每个结构都有(至少)三个IntPtr
- dwUser
,lpNext
和reserved
类型的字段。
答案 1 :(得分:1)
->
运算符用于通过指针访问对象的接口。