Tip8 避免给枚举类型的元素提供显示的值

来源:互联网 发布:网络大电影解析 编辑:程序博客网 时间:2024/06/05 06:34

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);//输出为:WednesdayTrue

实际上枚举元素允许设定重复的值,例如:

    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