Подтвердить что ты не робот

Именование констант 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, даже если это означает, что он скрывает их от них.
4b9b3361

Ответ 1

WS_EX_COMPOSITED отлично подходит для части, которая напрямую взаимодействует с Win API (или любым другим документированным API, если на то пошло). Часть, которую вы хотите открыть, должна соответствовать стандартным соглашениям - иметь отдельный публичный фасад для вызова собственных функций с хорошими именами методов (вы, в конце концов, забудете, что вы исследовали о конкретных комбинациях флагов, но хорошее имя метода оболочки, по крайней мере, позволит вы его используете).

Преимущество сохранения имени как можно ближе к встроенному API заключается в том, что вы можете искать константу непосредственно в документации MSDN/другой и сразу находить ответ. Это будет намного сложнее, если вы переименуете его.