C# 经常使用特性(Attribute)

使用特性,能够有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,能够在运行时使用反射这项技术查询特性。 在 C# 中,经过用方括号 ([]) 将特性名称括起来,并置于应用该特性的实体的声明上方以指定特性。ide


目录this

  • 指定方法实现的属性MethodImplAttribute
  • 标记再也不使用的程序元素ObsoleteAttribute
  • 指定属性或事件的说明DescriptionAttribute
  • 未完待续...


使用特性,能够有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,能够在运行时使用反射这项技术查询特性。
在 C# 中,经过用方括号 ([]) 将特性名称括起来,并置于应用该特性的实体的声明上方以指定特性。事件

按照惯例,全部特性名称都以 Attribute 结尾。 可是,面向运行时的几种语言(如 Visual Basic 和 C#)无需指定特性的全名。 例如,若要初始化 System.ObsoleteAttribute,只需将它引用为 Obsolete 便可。ip

指定方法实现的属性MethodImplAttribute

同步方法:同步

  • [MethodImplAttribute(MethodImplOptions.Synchronized)]标签应用到实例方法,至关于对当前实例加锁 lock(this)。
  • [MethodImplAttribute(MethodImplOptions.Synchronized)]标签应用到静态方法,至关于对当前类型加锁。如 WithDraw 是静态方法,就至关于 lock (typeof(Account))
标记再也不使用的程序元素ObsoleteAttribute

过期警告:it

  • [ObsoleteAttribute("过期方法、属性、类等,请使用新xxx方法、属性、类等", false)]
  • [ObsoleteAttribute()]或[ObsoleteAttribute]

过期错误:io

  • [ObsoleteAttribute("过期方法、属性、类等,请使用新xxx方法、属性、类等", true)]
指定属性或事件的说明DescriptionAttribute

DescriptionAttribute更多用于显示枚举变量的中文注释,反射枚举元素的DescriptionAttribute的值显示到界面。class

未完待续...
相关文章
相关标签/搜索