Tip8 避免給枚舉類型的元素提供顯示的值

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章