switch (C#)

这篇博客探讨了C#编程中的一些高级switch用法,包括基于枚举的开关、使用when子句进行类型检查、switch表达式以及与元组结合的switch。示例代码展示了如何在不同场景下灵活运用这些特性,提高代码的可读性和效率。
摘要由CSDN通过智能技术生成
  •  switch on an enumeration data type;
        static void SwitchOnEnum()
        {
            Console.WriteLine("Enter your favorite day of the week: ");
            DayOfWeek day;
            try
            {
                day=(DayOfWeek) Enum.Parse(typeof(DayOfWeek),Console.ReadLine());
            }
            catch (Exception)
            {
                Console.WriteLine("Invalid input!");
                return;
            }
            switch (day)
            {
                case DayOfWeek.Sunday:
                case DayOfWeek.Saturday:
                    Console.WriteLine("Weekends");
                    break;
                default:
                    Console.WriteLine("Working days");
                    break;
            }
        }
  • switch...case...when... 
       static void SwitchPattern()
        {
            object obj = 1;
            switch (obj)
            {
                // Type is checked first and value is also checked using when clause.
                case int i when i!=0:
                    Console.WriteLine($"The object is an integer not equal to zero: {i}");
                    break;
                case string s when s.Equals(""):
                    Console.WriteLine($"The object is a string not empty: {s}");
                    break;
                case long l:
                    Console.WriteLine($"The object is long number: {l}");
                    break;
                default:
                    Console.WriteLine("Else");
                    break;
            }
        }
  • switch Experessions (C# 8.0) 
string captial = FindCountryCaptial("China");
Console.WriteLine(captial);
Console.ReadLine();
static string FindCountryCaptial(string country)
{
    return country switch
    {
        "the USA" => "Washington",
        "China" => "Beijing",
        _ => "Unknown",
    };
}
  •  switch with Tuples
// switch expression with Tuples
static string ColorMixer(string colorA, string colorB)
{
    return (colorA, colorB) switch
    {
        ("red", "green") => "yellow",
        ("red", "blue") => "cyan",
        (_, _) => "unknown",
    };
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值