Czy w języku C # można ozdobić typ Enum atrybutem lub zrobić coś innego, aby określić, jaka powinna być wartość domyślna, bez zmiany wartości? Wymagane liczby mogą być ustawione w kamieniu z jakiegokolwiek powodu, i przydałoby się mieć kontrolę nad ustawieniami domyślnymi.
enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
Orientation o; // Is 'North' by default.
int
s abstrakcyjnie , po prostu dlatego, że są one zaimplementowane jako typy numeryczne. Możemy zaimplementować wyliczenia jako ciągi i nie zmieniłoby to ich przydatności. Uważam tutaj odpowiedź za ograniczenie ekspresji języka C #; ograniczenie z pewnością nie jest nierozerwalnie związane z ideą „odróżniania wartości od ograniczonego zbioru”.
enum
s jako konstrukcjach na poziomie typu, a konkretnie jako o typach sum (lub patrz tutaj . To znaczy, uważaj każdy wyliczenie za odrębny typ, gdzie wszystkie wartości tego typu są różne od wartości pozostałych wyliczeń. Z takiego sposobu myślenia wyliczenia nie mogą dzielić żadnej wartości i rzeczywiście, ta abstrakcja rozpada się, gdy weźmie się pod uwagę, że domyślna wartość 0
danego wyliczenia może, ale nie musi być, i jest po prostu uzewnętrzniona w każdym wyliczeniu.