网站建设盐城最便宜,签名在线生成器,动易门户网站价格,中国职业技能培训中心官网1.特性简介 2.自定义特性1.特性简介 特性(Attribute)是c#中的一种特殊的元数据机制, 可以将它理解成给代码(类, 方法, 属性, 参数, 程序集等)贴的标签这些标签不会直接影响代码的执行逻辑, 但能为代码附加额外的信息, 程序在运行时/编译时可以读取这些信息2.自定义…1.特性简介2.自定义特性1.特性简介特性(Attribute)是c#中的一种特殊的元数据机制,可以将它理解成给代码(类,方法,属性,参数,程序集等)贴的标签 这些标签不会直接影响代码的执行逻辑,但能为代码附加额外的信息,程序在运行时/编译时可以读取这些信息2.自定义特性a.定义自定义特性类(必须继承System.Attribute,命名建议以Attribute结尾)b.应用自定义特性到目标元素 c.通过反射读取特性的元数据usingSystem;usingSystem.Reflection;// 1. 定义自定义特性标记代码作者和创建时间// [AttributeUsage] 限定特性的适用范围这里表示可用于类、方法[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)]publicclassAuthorInfoAttribute:Attribute{// 特性的属性存储元数据publicstringName{get;}publicDateTimeCreateTime{get;}// 特性的构造函数必须有用于初始化publicAuthorInfoAttribute(stringname,stringcreateTime){Namename;CreateTimeDateTime.Parse(createTime);}}// 2. 应用自定义特性到类和方法[AuthorInfo(张三,2026-02-13)]publicclassMyBusinessClass{[AuthorInfo(李四,2026-02-14)]publicvoidDoBusiness(){Console.WriteLine(执行业务逻辑);}}classProgram{staticvoidMain(string[]args){// 3. 通过反射读取类上的特性信息TypeclassTypetypeof(MyBusinessClass);varclassAttr(AuthorInfoAttribute)Attribute.GetCustomAttribute(classType,typeof(AuthorInfoAttribute));Console.WriteLine($类作者{classAttr.Name}创建时间{classAttr.CreateTime:yyyy-MM-dd});// 读取方法上的特性信息MethodInfomethodclassType.GetMethod(DoBusiness);varmethodAttr(AuthorInfoAttribute)Attribute.GetCustomAttribute(method,typeof(AuthorInfoAttribute));Console.WriteLine($方法作者{methodAttr.Name}创建时间{methodAttr.CreateTime:yyyy-MM-dd});// 执行方法MyBusinessClassobjnewMyBusinessClass();obj.DoBusiness();}}