Enum.GetNames () resulta em uma ordem inesperada com constantes de enum negativas
Tenho a seguinte definição de enumeração (em 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
}
Agora, quando eu faço umEnum.GetNames()
nesse tipo, recebo uma matriz de strings com 9 elementos conforme o esperado, mas a ordem é All, Trace, ..., Off, General, que não é o que eu estava esperand
Aqui está o MSDNdocumentaçã paraEnum.GetNames()
:
"Comentários: Os elementos da matriz de valor retornado são classificados pelos valores das constantes enumeradas."
O que está acontecendo aqui? Posso mudar meu programa para levar em conta essa "funcionalidade", mas gostaria de saber por que o .NET está fazendo o que está fazendo.