У меня есть следующее определение перечисления (в С#):
public enum ELogLevel
{
General = -1, // Should only be used in drop-down box in Merlinia Administrator log settings
All = 0, // Should not be used as a level, only as a threshold, effectively same as Trace
Trace = 1,
Debug = 2,
Info = 3,
Warn = 4,
Error = 5,
Fatal = 6,
Off = 7 // Should not be used as a level, only as a threshold
}
Теперь, когда я делаю Enum.GetNames()
в этом типе, я получаю строковый массив с 9 элементами, как ожидалось, но порядок - это All, Trace,..., Off, General, чего я не ожидал.
Здесь MSDN документация для Enum.GetNames()
:
"Примечания: Элементы массива возвращаемых значений сортируются по значения перечислимых констант.
Что здесь происходит? Я могу изменить свою программу, чтобы учитывать эту "функциональность", но я бы хотел узнать, почему .NET делает то, что она делает.