在C#中,switch
语句用于根据不同的条件执行不同的代码块。以下是一些关于C# switch
语句的写法技巧:
- 使用大括号
{}
包围每个case
代码块,即使只有一行代码。这样可以提高代码的可读性和可维护性。
switch (value) { case 1: Console.WriteLine("Value is 1"); break; case 2: Console.WriteLine("Value is 2"); break; default: Console.WriteLine("Value is not 1 or 2"); break; }
-
使用
switch
语句时,确保所有可能的值都被列出。未列出的值将执行default
代码块。如果不确定所有可能的值,可以使用goto
语句代替switch
语句。 -
当
case
代码块中的代码执行完毕时,break
语句会自动执行。这样可以防止多个case
代码块被执行。但是,如果你希望在多个case
代码块中执行相同的代码,可以省略break
语句。
switch (value) { case 1: case 2: Console.WriteLine("Value is 1 or 2"); break; default: Console.WriteLine("Value is not 1 or 2"); break; }
- 如果
switch
语句的条件表达式是枚举类型,可以使用switch
语句的另一种语法,即直接在条件表达式后使用大括号{}
。
enum MyEnum { Value1, Value2, Value3 } MyEnum value = https://www.yisu.com/ask/MyEnum.Value1;"Value is Value1"); break; case MyEnum.Value2: Console.WriteLine("Value is Value2"); break; case MyEnum.Value3: Console.WriteLine("Value is Value3"); break; default: Console.WriteLine("Value is not Value1, Value2, or Value3"); break; }
- 在某些情况下,可以使用模式匹配(pattern matching)代替
switch
语句。C# 提供了switch
表达式和if-else if
语句的模式匹配版本。
value switch
{
int intValue when intValue > 0 => $"Positive integer: {intValue}",
int intValue when intValue < 0 => $"Negative integer: {intValue}",
_ => $"Non-integer value: {value}"
}
总之,C# switch
语句的写法技巧包括使用大括号 {}
包围每个 case
代码块、确保所有可能的值都被列出、使用 goto
语句代替未列出的值、省略 break
语句以执行多个 case
代码块、使用枚举类型的 switch
语句语法以及使用模式匹配代替 switch
语句。