根據MSDN文檔爲System.Enum類的最佳實踐部分:爲什麼枚舉中的位置標記(如第一個或最後一個)被認爲是不良實踐?
不要僅僅定義枚舉值,以反映枚舉本身的狀態。例如,不要定義枚舉常量,僅僅標記枚舉的結尾。如果您需要確定枚舉的最後一個值,請明確檢查該值。另外,如果範圍內的所有值均有效,則可以對第一個和最後一個枚舉常量執行範圍檢查。
如果我理解正確,我們不應該聲明一個枚舉如下。
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
}
爲什麼這被認爲是不好的做法?
我想這是一個從C/C++繼承的做法。在.NET世界中,我們有'Enum.IsDefined','Enum.GetValues'等,所以黑客沒有什麼意義了。 –