Именование констант API Windows в С#
соглашение об именах для констант в С# - это паскаль:
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
позволяет мне быстро связать его с с WinAPI, но это неправильно.
Некоторые параметры:
-
WsExComposited
- Слишком венгерский
-
Composited
- Слишком короткий
-
WsEx
перечисление с Composited
в нем - все еще венгерский
-
ExtendedWindowsStyles.Composited
- Постоянно в классе? Enum?
Следует отметить, что целью хорошего именования являются:
- Он должен быть доступен для чтения.
- Он не должен вызывать FxCop и StyleCop, даже если это означает, что он скрывает их от них.
Ответы
Ответ 1
WS_EX_COMPOSITED отлично подходит для части, которая напрямую взаимодействует с Win API (или любым другим документированным API, если на то пошло). Часть, которую вы хотите открыть, должна соответствовать стандартным соглашениям - иметь отдельный публичный фасад для вызова собственных функций с хорошими именами методов (вы, в конце концов, забудете, что вы исследовали о конкретных комбинациях флагов, но хорошее имя метода оболочки, по крайней мере, позволит вы его используете).
Преимущество сохранения имени как можно ближе к встроенному API заключается в том, что вы можете искать константу непосредственно в документации MSDN/другой и сразу находить ответ. Это будет намного сложнее, если вы переименуете его.