Кажется, мое предположение подтверждается ответом BoltClock ниже.
я есть следующее определение перечисления (в C #):
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 делает то, что делает.