码迷,mamicode.com
首页 > Windows程序 > 详细

c# 8 特性

时间:2020-03-05 15:19:02      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:get   turn   特性   OLE   div   subject   main   ati   span   

属性匹配模式

    public class Teacher
    {
        public string Name { get; set; }
        public string Subject { get; set; }
        public void Deconstruct(out string name,out string subject)
        {
            name = Name;
            subject = Subject;
        }
    }


    public class Student
    {
        public Student(string name,int grade,Teacher teacher)
        {
            Name = name;
            Grade = grade;
            Teacher = teacher;
        }
        public string Name { get; set; }
        public int Grade { get; set; }
        public Teacher Teacher { get; set; }
        public void Deconstruct(out string name, out int grade, out Teacher teacher)
        {
            name = Name;
            grade = Grade;
            teacher = Teacher;
        }


        public bool Is5GradeStudent(Student student)
        {
            return student is Student(_, 5, Teacher(_, "物理"));
        }
    }


        static void Main(string[] args)
        {
            Student stu = new Student("adsfsa", 5, new Teacher()
            {
                Name = "张超",
                Subject = "物理"
            });

            bool sss= stu.Is5GradeStudent(stu);
            Console.WriteLine(sss.ToString());
        }

还可以这么写

        public bool Is5GradeStudent(Student student)
        {
            return student is { Grade: 5, Teacher: { Subject: "物理" } };
        }
        public bool Is5GradeStudent(object obj)
        {
            return obj is Student s && s is { Grade: 5, Teacher: { Subject: "物理" } };
        }

 

c# 8 特性

标签:get   turn   特性   OLE   div   subject   main   ati   span   

原文地址:https://www.cnblogs.com/Celebrator/p/12420171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!