运算符'+'不能应用于C#中'System.DayOfWeek'和'System.DayOfWeek'类型的操作数

时间:2013-05-09 07:39:52

标签: c# datetime

今天使用反射器我找到了这一行:

 return date.AddDays((double) ((((dayOfWeek < date.DayOfWeek) ? (DayOfWeek.Saturday | DayOfWeek.Monday) : DayOfWeek.Sunday) + dayOfWeek) - date.DayOfWeek));

但编译器抛出错误:

运算符'+'不能应用于'System.DayOfWeek'和'System.DayOfWeek'类型的操作数

任何想法。

有什么问题?

3 个答案:

答案 0 :(得分:5)

System.DayOfWeekenum,因此未为其定义operator +。您可以将它们转换为int类型以使其正常工作。

供参考:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/a78e9101-eb84-426b-8bdf-63d9b3bdbece

答案 1 :(得分:1)

这里没有错,只是DayfWeek没有任何重载运算符+

enum,最后是数字类型,但在能够执行数学运算之前,您需要转换为具体的数字类型

答案 2 :(得分:0)

您必须将“DayOfWeek.Sunday”转换为Number First。喜欢(Int32)DayOfWeek.Sunday等。