Pattern Matching (C#)

1) if/else Pattern Matching (C# 7.0)

Use “is” keyword to check the type of an object

Example:

        static void FindPattern()
        {
            object item1 = 10;
            object item2 = "Hello!";
            if(item1 is int value1)
            {
                Console.WriteLine($"{item1} is an integer.");
            }
            if(item2 is string value2)
            {
                Console.WriteLine($"The string is {value2}");
            }
        }

Pattern Matching Improvements in C# 9.0

PatternRemark
Type patternsif (t is Type)
Parenthesized patternsif(a is (…) or (…))
And patternsif(a is (…) and (…))
Or patternsif( a is … or …)
Not patternsif( a is not string), if( a is not null)
Relational patternsif( a is > b)

2) switch Pattern Matching (C# 7.0)

Besides constant pattern, switch statements can also have type pattern.

        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;
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值