定义 Windows API const 值时,将它们作为 const 是否更好
public const int SW_HIDE = 0;
public const int SW_SHOWNORMAL = 1;
public const int SW_NORMAL = 1;
public const int SW_SHOWMINIMIZED = 2;
public const int SW_SHOWMAXIMIZED = 3;
public const int SW_MAXIMIZE = 3;
public const int SW_SHOWNOACTIVATE = 4;
public const int SW_SHOW = 5;
public const int SW_MINIMIZE = 6;
public const int SW_SHOWMINNOACTIVE = 7;
public const int SW_SHOWNA = 8;
public const int SW_RESTORE = 9;
public const int SW_SHOWDEFAULT = 10;
public const int SW_MAX = 10;
[DllImport( "user32.dll" )]
public static extern bool ShowWindow( HandleRef hWnd, int nCmdShow );
或将它们组合在一起作为一个枚举。
public enum SW {
SW_HIDE = 0,
SW_SHOWNORMAL = 1,
SW_NORMAL = 1,
SW_SHOWMINIMIZED = 2,
SW_SHOWMAXIMIZED = 3,
SW_MAXIMIZE = 3,
SW_SHOWNOACTIVATE = 4,
SW_SHOW = 5,
SW_MINIMIZE = 6,
SW_SHOWMINNOACTIVE = 7,
SW_SHOWNA = 8,
SW_RESTORE = 9,
SW_SHOWDEFAULT = 10,
SW_MAX = 10
}
[DllImport( "user32.dll" )]
public static extern bool ShowWindow( HandleRef hWnd, SW nCmdShow );
最佳答案
将它们分组为枚举。
为什么?整数在所有地方都被使用,你可以在需要大小的地方传递它们。这首先导致了 frickin 匈牙利符号 (szSomething..)。缺少类型系统,他们试图使用变量命名方案来“修复”它。有了更好的类型系统,你现在过得更好了;使用它。
定义枚举,以合理的方式对它们进行分组,总有一天你不会 Thread.Sleep(WM_User)(是的,我对这个例子不是很认真,但我想你明白了)。
关于c# - 如何对 Windows API 常量进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365014/