0

今天使用反射器我发现了这条线:

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

但是编译器抛出错误:

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

任何的想法。

怎么了?

4

3 回答 3

5

System.DayOfWeek是一个enum所以operator +没有为他们定义。您可以将它们转换为int类型以使其工作。

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

于 2013-05-09T07:42:06.920 回答
1

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

enum的,最后是数字类型,但您需要转换为具体的数字类型,然后才能执行数学运算。

于 2013-05-09T07:42:29.663 回答
0

您必须先将“DayOfWeek.Sunday”转换为数字。像 (Int32)DayOfWeek.Sunday 等。

于 2013-05-09T07:43:55.190 回答