假设DayOfWeek的数值是否安全?

时间:2012-12-02 14:52:43

标签: c# enums

我将星期几存储在数据库中,其中星期日= 1,星期一= 2等。

在来自数据库的查询中,我需要将日期转换为System.DayOfWeek

根据MSDN

  

此枚举中常量的值范围从 DayOfWeek.Sunday DayOfWeek.Saturday 。如果强制转换为整数,则其值的范围为零(表示 DayOfWeek.Sunday )为6(表示 DayOfWeek.Saturday )。

这意味着在查询数据后,我需要在将结果转换为DayOfWeek之前减去1。

这样安全吗? 或者我是否需要担心DayOfWeek更改的数值?

2 个答案:

答案 0 :(得分:37)

是的,这个安全,你不应该担心价值观的变化。以下是枚举的定义方式:

public enum DayOfWeek
{
    Sunday = 0,
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6
}

如果这些值在BCL中发生变化,那么很多代码都会破坏。

答案 1 :(得分:1)

是的,总是安全的,你可以回到前面:

return DateTime.Today.AddDays(-1);

return DateTime.Today.AddDays(1);