Опция перечисления превосходна, однако ее можно улучшить, умножив числа следующим образом:
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
В случае нескольких ошибок, добавление конкретных номеров ошибок вместе даст вам уникальный номер, который будет представлять комбинацию обнаруженных ошибок.
Например, уровень ошибки 6 может состоять только из ошибок 4 и 2, 12 может состоять только из ошибок 4 и 8, 14 может состоять только из 2, 4 и 8 и т. Д.