C# 8.0 新增功能 —模式匹配增强功能—属性模式

属性模式

借助属性模式 ,可以匹配所检查的对象的属性,创建了简洁的语法。
例如,以下通过获取当前星期对应的数字:

using System;

namespace BasicKnowledgeTest
{
    public class WeekDay
    {
        public Weekday Name { get; set; }
        public string Weather { get; set; }

    }
    public static class TestPropertyMode
    {
        // 获取星期对应的数字
        public static int GetWeekDayNum(WeekDay day) =>
        day switch
        {
            { Name: Weekday.Sun } => 0,
            { Name: Weekday.Mon } => 1,
            { Name: Weekday.Tues } => 2,
            { Name: Weekday.Wed } => 3,
            { Name: Weekday.Thur } => 4,
            { Name: Weekday.Fri } => 5,
            { Name: Weekday.Sat } => 6,
            _ => throw new ArgumentException(message: "invalid enum value"),
        };

    }
}

测试:

using System;
using System.Diagnostics;

namespace BasicKnowledgeTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var result = TestPropertyMode.GetWeekDayNum(new WeekDay(){Name= Weekday.Mon});
            Console.WriteLine(result);
            Console.ReadLine();
        }
    }
}

测试结果:


C# 8.0 新增功能 —模式匹配增强功能—属性模式_第1张图片

你可能感兴趣的:(C# 8.0 新增功能 —模式匹配增强功能—属性模式)