开关
switch 语句是一个控制语句,用于从候选列表中选择要执行的开关部分。switch 语句包括一个或多个 switch 部分。每个开关部分包含一个或多个 case 标签,后跟一个或多个语句。如果没有案例标签包含匹配值,则控制权转移到 default 部分(如果有)。严格来说,C#不支持案例转换。但是,如果一个或多个 case 标签为空,则执行将遵循包含代码的下一个 case 块的代码。这允许使用相同的实现对多个 case 标签进行分组。在下面的示例中,如果 month 等于 12,则 case 2 中的代码将被执行,因为 case 标签 12 1 和 2 被分组。如果 case 块不为空,
int month = DateTime.Now.Month; // this is expected to be 1-12 for Jan-Dec
switch (month)
{
case 12:
case 1:
case 2:
Console.WriteLine("Winter");
break;
case 3:
case 4:
case 5:
Console.WriteLine("Spring");
break;
case 6:
case 7:
case 8:
Console.WriteLine("Summer");
break;
case 9:
case 10:
case 11:
Console.WriteLine("Autumn");
break;
default:
Console.WriteLine("Incorrect month index");
break;
}
case 只能用编译时已知的值标记 (例如 1,str,Enum.A),因此 variable 不是有效的 case 标签,而是 const 或 Enum 值(以及任何文字值)。