读书人

C#参数传递的有关问题

发布时间: 2012-09-11 10:49:03 作者: rapoo

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的重载

读书人网 >C#

热点推荐