【问题标题】:asp.net using switch case in c# for datetime.now.hour formatasp.net 在 c# 中为 datetime.now.hour 格式使用 switch case
【发布时间】:2016-08-08 23:44:09
【问题描述】:

我使用 switch case 语句创建了这个 asp.net 程序,以确定 C# 中的当前 datetime.now.hour。当我编译它时,什么都没有发生,甚至没有错误 cmets。 我相信我接近让它发挥作用,但我需要指出正确的方向。我将不胜感激任何有用的建议。我相信我的问题是不知道如何正确地将变量转换为正确的数据类型。我真的是 asp.net 的新手,我在练习时正在学习 c#。我在 C++ 方面有一些经验。这是我的代码。

  <% Page Language="C#"%>
 <script runat="server">
 void Page_Load(Object sender, EventArgs e)
 {
 int h= Convert.ToInt32(DateTime.Now.ToString("HH");
 switch (h)
 {
 case (h>12): lblMsg.Text="One O'clock!"; break;
 case (h>12): lblMsg.Text="Two O'clock!"; break;
 case (h>12): lblMsg.Text="Three O'clock!"; break;
 case (h>12): lblMsg.Text="Four O'clock!"; break;
 case (h>12): lblMsg.Text="Five O'clock!"; break;
 case (h>12): lblMsg.Text="Six O'clock!"; break;
 case (h>12): lblMsg.Text="Seven O'clock!"; break;
 case (h>12): lblMsg.Text="Eight O'clock!"; break;
 case (H>12): lblMsg.Text="Nine O'clock!"; break;
 case (H>12): lblMsg.Text="Ten O'clock!"; break;
 case (H>12): lblMsg.Text="Eleven O'clock!"; break;
 default: lblMsg.Text="Twelve O'clock!"; break;
 }
 }
 <script>
 <!doctype html>
 <head>
 </head>
 <body>
 <asp:Label id="lb1Msg" runat="server" />
 <html>

【问题讨论】:

  • 你可以做 switch(true) 并保持原样,因为表达式将返回 bool (h > 12 它是真或假)但在你的情况下,我认为它不会任何意义......只要做案例1,案例2 .....案例24。
  • 请注意,HH format 给出的值(字符串)从“00”到“23”。

标签: c# asp.net datetime switch-statement


【解决方案1】:

每个 case 标签指定一个常量值。 switch 语句将控制转移到 switch 部分,其 case 标签与 switch 表达式的值匹配。如果没有 case 标签包含匹配值,则控制转移到 default 部分(如果有)。如果没有 default 部分,则不执行任何操作,并且将控制转移到 switch 语句之外。

switch (h)
{
    case 1: lblMsg.Text="One O'clock!"; break;
    case 2: lblMsg.Text="Two O'clock!"; break;
    case 3: lblMsg.Text="Three O'clock!"; break;
    case 4: lblMsg.Text="Four O'clock!"; break;
    case 5: lblMsg.Text="Five O'clock!"; break;
    case 6: lblMsg.Text="Six O'clock!"; break;
    case 7: lblMsg.Text="Seven O'clock!"; break;
    case 8: lblMsg.Text="Eight O'clock!"; break;
    case 9: lblMsg.Text="Nine O'clock!"; break;
    case 10: lblMsg.Text="Ten O'clock!"; break;
    case 11: lblMsg.Text="Eleven O'clock!"; break;
    default: lblMsg.Text="Twelve O'clock!"; break;
}

您正在使用带有 case 的表达式,而它期望 constants

【讨论】:

  • 好的,谢谢。所以表达式是 (h>12),如果我使用 if else 语句,这可能没问题。我进行了更正,但我的代码无法编译。我有一些错误。我现在正在尝试调试它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
  • 2012-07-13
相关资源
最近更新 更多