回答
甲case
语句必须是一个编译时间常数(C# spec and example):
每个案例标签指定的恒定值。
不幸的是,您将无法使用switch
来比较DateTime
。这是丑陋的,但在这里使用if
是更好的选择。
你的语句表明'case default(DateTime):'应该工作,因为'default(DateTime)'是一个编译时常量,但它不起作用。 – svick 2011-05-14 00:04:37
谢谢。会选择这个答案。 – lakdsla 2011-05-14 00:06:11
我不认为默认(DateTime)是编译时间常量。 AFAIK它实现为DateTime.MinValue,这是一个静态常量。 – YetAnotherUser 2011-05-14 00:23:38
你写开关的情况下错误,请检查在这里更多信息http://msdn.microsoft.com/en-us/library/06tc147t(v=VS.100).aspx
还要注意开关的情况下,所以我认为DateTime
不会使用它适用于常量,U将得到编译错误
8.7节的C#4规范的0.2规定在其上有可能切换类型必须是:
sbyte
,byte
,short
,ushort
,int
,uint
,long
,ulong
,bool
,char
,string
,或枚举类型,或[...]对应于这些类型的
或一种类型的隐式转换为其中的一个中的一个空类型类型,除了bool
。
,你可以将它们转换为长(dateTime.Ticks)
- 1. 在SQL语句中比较日期
- 2. .NET C#switch语句字符串比较与枚举比较
- 3. 在C++中比较日期
- 4. 在C中比较日期#
- 5. 如何用where语句比较日期?
- 6. c switch语句
- 7. c#,比较日期
- 8. c#比较日期时间日期与时间跨度参数
- 9. ActionScript - 在switch语句中使用“is”比较?
- 10. 在sql插入语句中比较日期
- 11. C++中的switch语句
- 12. switch语句中的switch语句?
- 13. 如何在linq c中比较日期#
- 14. 比较两个日期参数
- 15. C - 作为switch语句中的函数参数
- 16. ASP.NET C#日期比较
- 17. C#比较日期范围
- 18. iphone,objective c - 日期比较
- 19. Switch语句中的C++数学
- 20. 在switch语句
- 21. 在switch语句
- 22. rails - 语句数组比较
- 23. 在linq中比较日期
- 24. 在asp.net中比较日期
- 25. 在PHP中比较日期
- 26. 在sas中比较日期
- 27. 在DataView.RowFilter中比较日期?
- 28. 在Android中比较日期
- 29. 在Javascript中比较日期
- 30. 在rails中比较日期
您想查看交换机的语法,因为你不使用它类似的东西它是专为做DateTime值switch语句。大小写以冒号结尾,而不是分号,并且您在switch()中使用了ToString(),因此这些个案必须全部是字符串,也就是说,“5/13/2011 6:25 PM”就是Today.ToString()会做的事情。 – 2011-05-14 00:25:17