在C#中命名Windows API常量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中命名Windows API常量相关的知识,希望对你有一定的参考价值。
naming convention for constants in C#是Pascal套管:
private const int TheAnswer = 42;
但有时我们需要从Windows API中表示已存在的常量。
例如,我不知道如何命名:
/// <summary>
/// With this style turned on for your form,
/// Windows double-buffers the form and all its child controls.
/// </summary>
public const int WS_EX_COMPOSITED = 0x02000000;
我该怎么命名呢?
把它保持为WS_EX_COMPOSITED
允许我快速将它与the WinAPI联系起来,但这是错误的。
一些选择:
WsExComposited
- 太匈牙利人了Composited
- 太短了WsEx
enum与Composited
在其中 - 仍然是匈牙利人ExtendedWindowsStyles.Composited
- 课堂上的常数?枚举?
应该指出的是,良好命名的目标是:
- 它必须是可读的。
- 它不能触发FxCop和StyleCop,即使这意味着将它隐藏起来。
答案
对于直接与Win API(或任何其他文档化API)接口的部分,WS_EX_COMPOSITED非常适合。您要公开的部分应该遵循标准约定 - 使用单独的公共Facade来调用具有良好方法名称的本机函数(您最终会忘记您对特定标志组合的研究,但是好的包装器方法名称至少会让你用吧)。
保持名称尽可能接近本机API的另一个好处是,您可以直接在MSDN /其他文档中搜索常量并立即找到答案。如果你重命名它将会困难得多。
另一答案
也许this将通过这个问题帮助新访客。
如果字段或变量名称旨在匹配与Win32或COM关联的项的名称,因此需要以下划线开头,请将字段或变量放在特殊的NativeMethods类中。 NativeMethods类是包含以NativeMethods结尾的名称的任何类,用作Win32或COM包装器的占位符。如果项目放在NativeMethods类中,StyleCop将忽略此违规。
以上是关于在C#中命名Windows API常量的主要内容,如果未能解决你的问题,请参考以下文章