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);
结果