Как к окнам группы константы API

При определении значений константы Windows API, это лучше, чтобы иметь их как константу

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 );
7
задан Jon Seigel 5 March 2010 в 14:20
поделиться

2 ответа

Сгруппируйте их как перечисления.

Зачем? Инты используются повсюду, и вы можете передавать их там, где, например, необходим размер... Это привело к чертовой венгерской нотации (szSomething...) в первую очередь. Система типов была несовершенна, и они попытались "исправить" это с помощью схемы именования переменных. Теперь у вас есть лучшая система типов; используйте ее.

Определите перечисления, сгруппируйте их разумным образом, и вы не будете Thread.Sleep(WM_User) когда-нибудь (Да, я не совсем серьезно отношусь к этому примеру, но думаю, вы поняли суть).

6
ответ дан 6 December 2019 в 23:04
поделиться

За исключением ремонтопригодности кода, это не имеет никакого значения.

Я рекомендую использовать перечисление ; это позволяет использовать IntelliSense при вызове функции и может помочь предотвратить ошибки.
Однако вы должны дать вашему перечислению осмысленное имя, например WindowShowType .
Кроме того, вы можете удалить префиксы и, возможно, стандартизировать имена для CamelCase.

5
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: