阅读量:83
在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 = MyEnum.Value1;
switch (value)
{
case MyEnum.Value1:
Console.WriteLine("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 语句。