开关
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
值(以及任何文字值)。