📜  在C#8.0中切换表达式

📅  最后修改于: 2021-05-30 00:53:53             🧑  作者: Mango

switch语句是多路分支语句。它提供了一种简单的方法,可以根据表达式的值将执行转发到代码的不同部分。因此,对于switch语句,您总是使用一些重复的case和break关键字,并且还使用default语句,如下面的示例所示:

例子:

// C# program to illustrate
// switch case statement
using System;
  
public class GFG {
  
    // Main Method
    public static void Main(String[] args)
    {
        int gitem = 8;
  
        switch (gitem) {
  
        case 2:
            Console.WriteLine("Hello");
            break;
  
        case 4:
            Console.WriteLine("Bonjour");
  
            break;
        case 6:
            Console.WriteLine("Konnichiwa");
            break;
  
        case 8:
            Console.WriteLine("Namaste");
            break;
  
        case 10:
            Console.WriteLine("Anyoung haseyo");
            break;
  
        default:
            Console.WriteLine("No greeting found");
            break;
        }
    }
}

输出:

Namaste

这是switch语句的基本介绍。现在进入主要主题,众所周知,Microsoft已发布了最新版本的C#,即C#8.0。在C#8.0中,开发人员对switch语句进行了一些改进,经过改进,将switch语句转换为switch表达式,并进行了如下改进:

  • 开关表达式中使用的变量现在位于switch关键字之前。
  • 冒号(:)和case关键字替换为箭头(=>)。这使得代码更加紧凑和易读。
  • 现在,默认情况下将替换为discard(_)。
  • 开关的主体是表达式,而不是语句。

现在,根据新的改进,我们修改了上面的示例。与传统方法相比,这些新改进使我们的程序更紧凑,更易于阅读。

范例1:

// C# program to illustrate
// switch expression
using System;
  
public class GFG {
  
    // Main Method
    public static void Main(String[] args)
    {
        var gitem = 4;
  
        var res = gitem switch {
            2 => "Hello",
            4 => "Bonjour",
            6 => "Namaste",
            8 => "Anyoung haseyo",
            _ => "No greeting found",
  
        };
  
        Console.WriteLine(res);
    }
}

输出:

Bonjour

范例2:

// C# program to illustrate 
// how to use string in
// switch expression
using System;
  
public class GFG {
  
    // Main Method
    public static void Main(String[] args)
    {
        var sitem = "Second";
  
        var res = sitem switch {
            "First" => "C#",
            "Second" => "Java",
            "Third" => "C++",
            "Fourth" => "Python",
            _ => "Not Language found !",
  
        };
  
        Console.WriteLine("Favorite Language: {0} ", res);
    }
}

输出:

Favorite Language: Java