Em C #, é possível decorar um tipo de Enum com um atributo ou fazer outra coisa para especificar qual deve ser o valor padrão, sem que os valores sejam alterados? Os números necessários podem ser definidos por qualquer motivo, e seria útil ainda ter controle sobre o padrão.
enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
Orientation o; // Is 'North' by default.
int
s no resumo , simplesmente porque elas são implementadas como tipos numéricos. Poderíamos implementar enums como strings, e isso não mudaria sua utilidade. Considero a resposta aqui uma limitação da expressividade da linguagem C #; a limitação certamente não é inerente à idéia de "distinguir valores de um conjunto restrito".
enum
s como construções em nível de tipo, especificamente como tipos de soma (ou veja aqui . Ou seja, considere cada enum como um tipo distinto, em que todos os valores desse tipo são distintos dos demais valores de enum. De acordo com essa mentalidade, é impossível que as enumeras compartilhem qualquer valor e, de fato, essa abstração se desintegra quando você considera que o padrão de 0
pode ou não ser válido para uma determinada enumeração e é simplesmente excitado em cada enumeração.