现在的位置: 首页 > 综合 > 正文

C# Attribute

2013年02月04日 ⁄ 综合 ⁄ 共 1049字 ⁄ 字号 评论关闭

特性,就是为目标元素,可以是数据集、模块、类、属性、方法、甚至函数参数等加入附加信息,类似于注释,但是可以在运行期以反射的方式获得。定制特性主要应用在序列化、编译器指令、设计模式等方面。

多个特性可以应用于同一元素,特性间以逗号隔开,以下表达规则有效:[AttributeUsage][ Flags]、[AttributeUsage, Flags]、[Flags, AttibuteUsageAttribute]、[AttributeUsage(), FlagesAttribute()]

attibute实例,是在编译期进行初始化,而不是运行期。

C#允许以指定的前缀来表示特性所应用的目标元素,建议这样来处理,因为显式处理可以消除可能带来的二义性。例如:

namespace Anytao.net

{
    [assembly: MyAttribute(
1)]         
//应用于程序集
    [moduel: MyAttribute(2)]           
//应用于模块
    pubic class Attribute_how2do
    {
       
//
    }
}

AttributeUsageAttribute特性的作用:Specifies the usage of another attribute class.

往往在定义新特性时应用以前的特性。

[AttributeUsageAttribute(AttributeTarget.All),
AllowMultiple
=
true,
Inherited
=
true]
class MyNewAttribute: System.Attribute
{
  
//
}

  1. 特性不会影响应用元素的任何功能,只是约定了该元素具有的特质。
  2. 所有非抽象特性必须具有public访问限制。
  3. 特性常用于编译器指令,突破#define, #undefine, #if, #endif的限制,而且更加灵活。
  4. 特性常用于在运行期获得代码注释信息,以附加信息来优化调试。
  5. 特性可以应用在某些设计模式中,如工厂模式。
  6. 特性还常用于位标记,非托管函数标记、方法废弃标记等其他方面。

下面是很详细的Attribute应用教程:

Attribute在.net编程中的应用(一)
Attribute在.net编程中的应用(二)
Attribute在.NET编程中的应用(三)
Attribute在.NET编程中的应用(四)
Attribute在.NET编程中的应用(五)
Attribute在.NET编程中的应用(六)

抱歉!评论已关闭.