理解C# Attribute

1、Attribute与Property

  Attribute是特性,Property是属性。

2、Attribute与注释

  注释:是给程序员看的,编译的时候会去掉这些信息,也就是说,程序集中没有注释的内容。

  Attribute:会被编译到程序集中,在程序集的元数据中,在加载程序集的时候,可以从它的元数据中提取出这些信息。

3、说了那么多,考虑下,它解决什么问题?

  考虑下面的需求,一个工具类提供了很多静态方法,甲乙两个程序员合作完成,理所当然,应该标识出哪些是甲写的,哪些是乙写的,用于统计。最笨的加注释,但是它有两个问题:a、编译后生成的程序集中,没有了这些注释内容;b、只能通过人工去统计甲乙完成的方法,有没有办法通过程序自动化统计呢?

4、使用Attribute,对源代码打上标记,这些标记生成在程序集中,做个小工具去统计甲乙完成的方法。

5、特别注意:表面上,Attribute和public,static一样,像个修饰符。实际上,Attribute不是修饰符,而是一个特殊的类,这个类实例化,然后附着在目标对象上。

原文地址:https://www.cnblogs.com/nzbbody/p/3519752.html