温馨提示×

c# switch代码写法技巧

c#
小樊
81
2024-12-01 05:15:03
栏目: 编程语言

在C#中,switch语句用于根据不同的条件执行不同的代码块。以下是一些关于C# switch语句的写法技巧:

  1. 使用大括号 {} 包围每个 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;
}
  1. 使用 switch 语句时,确保所有可能的值都被列出。未列出的值将执行 default 代码块。如果不确定所有可能的值,可以使用 goto 语句代替 switch 语句。

  2. 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;
}
  1. 如果 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;
}
  1. 在某些情况下,可以使用模式匹配(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 语句。

0