C#参数传递的问题
先把代码贴出了,好说事。
- C# code
if (m.Msg == WM_NCLBUTTONDOWN) { int isDragFullWindow; // 1,查询当前系统“拖动显示窗口内容”设置 SystemParametersInfo(SPI_GETDRAGFULLWINDOWS,0, out isDragFullWindow,0); // 2,如果需要修改设置,则在每次进入WM_NCLBUTTONDOWN默认处理之前修改 if ( isDragFullWindow == 1) { SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, 0, 0); } // 3,to do something base.WndProc(ref m); // 4,处理完毕后,还原系统设置 if (isDragFullWindow == 1) { SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, 1, 0); } }
SystemParametersInfo 函数的定义:
- C# code
[DllImport("user32.dll",CharSet = CharSet.Auto)] public static extern int SystemParametersInfo(int uAction, int uParam,out int lpvParam, intfuWinIni);
其实上面的代码有个小问题:
我看过SystemParametersInfo这个函数在C++中既可以用来接受参数,类似C#中 out 的用法 ,如函数的第一次的使用,也可以用来直接提供参数,如函数的第二、三次的使用。但是这种在C#中是通不过的,请问这种情况该如何解决。
[解决办法]
你可以再定义一个没有out的重载