Tip8 避免給枚舉類型的元素提供顯示的值
一般情況下,沒有必要給枚舉類型的元素提供顯式的值,因爲不正確地設定顯式的值會帶來意想不到的錯誤。例如:
enum Week
{
Monday = 1,
Tuesday = 2,
ValueTemp,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
得到的結果令人很意外(實際上ValueTemp和Wednesday的值都是3):
Week week = Week.ValueTemp;
Console.WriteLine(week);
Console.WriteLine(week == Week.Wednesday);
//輸出爲:
Wednesday
True
實際上枚舉元素允許設定重複的值,例如:
enum Temp
{
Value1 = 1,
Value2 = 1
}
Temp temp1 = Temp.Value1;
Temp temp2 = Temp.Value2;
Console.WriteLine(temp1 == temp2);
Console.WriteLine(temp1.Equals(temp2));
Console.WriteLine(temp1.CompareTo(temp2));
Console.WriteLine(temp1 == Temp.Value1);
Console.WriteLine(temp1 == Temp.Value2);
//輸出爲:
True
True
0
True
True