Według sekcji Dobrych Praktyk dokumentacji MSDN dla klasy System.Enum:Dlaczego znaczniki pozycji, takie jak pierwsza lub ostatnia, w wyliczeniu są uważane za złe praktyki?
nie definiują wartość wyliczenia wyłącznie w celu odzwierciedlenia stanu samego wyliczenia. Na przykład nie definiuj wyliczonej stałej, która po prostu oznacza koniec wyliczenia. Jeśli chcesz określić ostatnią wartość wyliczenia, sprawdź tę wartość jawnie. Ponadto można wykonać sprawdzenie zakresu dla pierwszej i ostatniej wyliczonej stałej, jeśli wszystkie wartości w tym zakresie są prawidłowe.
Jeśli dobrze rozumiem, nie powinniśmy deklarować wyliczenia w następujący sposób.
public enum DrawOrder
{
VeryBottom = 0,
Bottom = 1,
Middle = 2,
Top = 3,
Lowest = VeryBottom, //marks a position in the enum
Highest = Top, //marks a position in the enum
}
Dlaczego jest to uważane za złą praktykę?
Domyślam się, że jest to praktyka przeniesiona z C/C++. W świecie .NET mamy 'Enum.IsDefined',' Enum.GetValues', itd., Więc hack nie ma większego sensu. –