📜  c# switch when - C# (1)

📅  最后修改于: 2023-12-03 15:29:46.318000             🧑  作者: Mango

C# 中的 switch when

简介

switch when 是在 C# 8.0 中引入的一种新特性,它使得在条件匹配时可以使用更自然的语法,从而编写更简洁、可读性更高的代码。它能够替代传统的 switch-case 语句以及 if-else 语句,特别适合于在多个条件下进行不同的匹配操作。

使用示例

下面是一个使用 switch when 的示例代码:

using System;

public class Program
{
    public static void Main(string[] args)
    {
        object obj = "Hello, world!";
        switch (obj)
        {
            case int i: Console.WriteLine($"An integer: {i}"); break;
            case string s when s.StartsWith("Hello"): Console.WriteLine($"A greeting: {s}"); break;
            case string s: Console.WriteLine($"A string: {s}"); break;
            default: Console.WriteLine($"An unknown object: {obj}"); break;
        }
    }
}

在上面的代码中,我们使用了 switch 语句对一个对象进行匹配,然后根据不同的条件进行不同的操作。具体来说:

  • case int i: 表示如果对象是一个整数,则执行后面的语句。
  • case string s when s.StartsWith("Hello"): 表示如果对象是一个以 "Hello" 开头的字符串,则执行后面的语句。
  • case string s: 表示如果对象是一个字符串,则执行后面的语句。
  • default: 表示如果对象不满足前面的任何一个条件,则执行后面的语句。
注意事项

使用 switch when 时需要注意以下几点:

  • switch 语句中的变量类型必须是一致的。
  • when 后面必须是一个条件表达式,它不能是一个语句块。
  • break 语句可以用来跳出 switch 语句。
小结

switch when 是在 C# 8.0 中引入的一种新特性,它使得在条件匹配时可以使用更自然的语法,从而编写更简洁、可读性更高的代码。它能够替代传统的 switch-case 语句以及 if-else 语句,在多个条件下进行不同的匹配操作时尤为方便。注意事项包括变量类型必须一致、when 后面必须是一个条件表达式、break 用来跳出 switch 语句。