C#简单编写特性

 C#中特性有非常多,下面我们自己写一个简单的特性

    public class Tx: Attribute{

        public string TxName { get; set; }
        public  Tx(string Name) {

            this.TxName = Name;
        }
}
注意所有的特性都继承Attribute

定义一个teacher类
    [Tx("这是个特性")]
    public class Teacher
    {
        public string Name { get; set; }
        public int age { get; set; }
    }

定义Show方法,反射获取类,找下当前类上是否定义该特性

        public static void Show<T>(T Man) where T : Teacher
        {
            //反射当前类
            Type type = typeof(T);

            if (type.IsDefined(typeof(Tx),true))
            {
                var attribute = type.GetCustomAttributes(typeof(Tx),true);
                Console.WriteLine(((Tx)attribute[0]).TxName);
            }


            Console.WriteLine($"姓名{Man.Name},年龄{Man.age}");
        }

调用输出

     Teacher teacher = new Teacher()
            {
                Name = "小红",
                age = 33

            };
  
           Show<Teacher>(teacher);

结果

 

posted @ 2021-11-06 16:58  .就这  阅读(55)  评论(0编辑  收藏  举报