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