转载请联系后台Q公众号。概述属性(Attribute)是一种声明性标签,用于传达程序中各种元素(如类、方法、结构、枚举、组件等)在运行时的行为信息。您可以使用属性向您的程序添加声明性信息。声明性标签是通过在它所适用的元素前面放置方括号([])来描述的。要设计自己的自定义属性,您不需要掌握很多新概念。如果您熟悉面向对象的编程并且知道如何设计类,那么您已经拥有了大部分所需的东西。自定义属性本质上是直接或间接派生自System.Attribute的传统类。与传统类一样,自定义属性包含用于存储和检索数据的方法。实现方法1.声明自定义属性。新的自定义属性应该从System.Attribute类派生。//一个自定义属性BugFix赋值给类及其成员[AttributeUsage(AttributeTargets.Class|AttributeTargets.Constructor|AttributeTargets.Field|AttributeTargets.Method|AttributeTargets.Property,AllowMultiple=true)]publicclassDeBugInfo:System.Attribute2,从定义属性构建,让我们构建一个名为DebugInfo的自定义属性,它将存储调试器获得的信息。//一个自定义属性BugFix被赋值给类及其成员privateintbug号;privatestringdeveloper;privatestringlastReview;publicstringmessage;publicDeBugInfo(intbg,stringdev,stringd){this.bugNo=bg;this.developer=dev;this.lastReview=d;}publicintBugNo{get{returnbugNo;}}publicstringDeveloper{get{returndeveloper;}}publicstringLastReview{get{returnlastReview;}}publicstringMessage{get{returnmessage;}set{message=value;}}}3.应用自定义功能[DeBugInfo(45,"ZaraAli","12/8/2012",Message="Returntypemismatch")][DeBugInfo(49,"NuhaAli","10/10/2012",Message="Unusedvariable")]classRectangle{//成员变量protecteddoublelength;protecteddoublewidth;publicRectangle(double,doublew){length=l;width=w;}[DeBugInfo(55,"ZaraAli","19/10/2012",Message="Returntypemismatch")]publicdoubleGetArea(){returnlength*width;}[DeBugInfo(56,"ZaraAli","19/10/2012")]publicvoidDisplay(){Console.WriteLine("Length:{0}",length);Console.WriteLine("宽度:{0}",width);Console.WriteLine("面积:{0}",GetArea());}}
