' - >' C#中的运算符,它做了什么?

时间:2016-01-27 03:23:46

标签: c#

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

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

我以前从未在C#中看到过这样的东西,它让我想起了C ++迭代器,但我只是想让自己清楚一点。那是什么,它做了什么? (它用于不安全的课程)

2 个答案:

答案 0 :(得分:4)

这是一个现场访问运营商。它允许您通过指向非托管代码中该结构的指针来访问结构的字段。允许指针的所有运算符都在this document中描述。

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

答案 1 :(得分:1)

->运算符用于通过指针访问对象的接口。