比较 C# switch 语句中的日期参数

发布于 2024-11-07 00:14:22 字数 264 浏览 1 评论 0原文

由于某种原因,我无法比较 C# 中 Switch 语句中的两个日期参数。 同样的比较在 ifelse if 语句中工作得很好,但在 switch 中则不然。

例子 :

switch (DateTime.Today.ToString())
{
    case DateTime.Today.AddDays(-10) <= DateTime.Today;
}

For some reason i cannot compare two date parameters in the Switch statement in C#.
The same comparison works perfectly fine in if and else if statement but not in switch.

Example :

switch (DateTime.Today.ToString())
{
    case DateTime.Today.AddDays(-10) <= DateTime.Today;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哆啦不做梦 2024-11-14 00:14:23

case 语句必须是编译时常量 (C# 规范和示例):

每个 case 标签指定一个常量值。

遗憾的是,您无法使用switch 来比较DateTime。它更丑陋,但使用 if 是这里更好的选择。

A case statement must be a compile-time constant (C# spec and example):

Each case label specifies a constant value.

Unfortunately, you won't be able to use a switch for comparing DateTime. It's uglier, but using if's is the better option here.

咽泪装欢 2024-11-14 00:14:23

您写错了 switch 大小写,请在此处查看更多信息 http://msdn.microsoft.com/en-us/library/06tc147t(v=VS.100).aspx

另请注意,switch case 适用于常量,因此我认为 DateTime 会不使用它,你会得到编译错误

You wrote switch case wrong, check more info on it here http://msdn.microsoft.com/en-us/library/06tc147t(v=VS.100).aspx

Note also that switch cases works on constants so I think DateTime will not work with it, u will get compile error

画骨成沙 2024-11-14 00:14:23

您可以通过将 DateTime 值转换为 long (dateTime.Ticks) 来对 DateTime 值执行 switch 语句

you can do switch statements on DateTime values by converting them to long (dateTime.Ticks)

放手` 2024-11-14 00:14:23

C# 4 规范第 8.7.2 节规定,可以切换的类型必须是:

sbytebyteshortushortintuintlongulongboolchar字符串 >,或枚举类型,或 [...] 与这些类型之一相对应的可空类型

,或者可隐式转换为其中一种类型的类型(bool 除外)。

Section 8.7.2 of the C# 4 specification states that the type on which it's possible to switch has to be:

sbyte, byte, short, ushort, int, uint, long, ulong, bool, char, string, or an enum-type, or […] the nullable type corresponding to one of these types

or a type that is implicitly convertible to one of those types, except to bool.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文