假设DayOfWeek的数值是否安全?

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

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

根据MSDN :

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

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

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

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

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

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

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

 return DateTime.Today.AddDays(-1); 

 return DateTime.Today.AddDays(1);