C#中的参数

Ami*_*oei 0 c# out-parameters

当我想在C#中获取内存总值时,我在MSDN中找到了一个kernel32函数来调用系统中的数据.MSDN以这种方式声明函数:

[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer);
Run Code Online (Sandbox Code Playgroud)

但这不能正常工作.我将"ref"改为"[In,Out]"然后它正常工作.怎么能告诉我C#中的[In,Out]参数是什么?

Max*_*erl 6

在:http://msdn.microsoft.com/de-de/library/system.runtime.interopservices.inattribute.aspx

Out:http://msdn.microsoft.com/de-de/library/system.runtime.interopservices.outattribute.aspx

简短:它们控制着数据编组的方式.在这种情况下,您指定它们两者,这意味着数据被编组到双方(调用者和被调用者).