📅  最后修改于: 2023-12-03 15:29:46.318000             🧑  作者: Mango
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
语句。