码迷,mamicode.com
首页 > 其他好文 > 详细

Attribute之基础

时间:2015-02-07 20:22:05      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:.net

         在工作的过程中看到实体类里用了很多Attribute,一直没有时间来研究它到时是什么?它有什么用?没有这个东东程序是否还能运行等等?带着这一系列的疑问来和大家一起学习一下Attribute

一、是什么?

         通俗的来说Attribute就是一个类,在CSDN中是这样解释的:

         他是公共语言运行时允许你添加类似关键字的描述声明,叫做attributes,它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NETFramework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。

         在.NET中,Attribute被用来处理多种问题,比如序列化、程序的安全特征、防止即时编译器对程序代码进行优化从而代码容易调试等等。那么就下来就让我们来具体的谈谈它到底怎么用?

二、怎么用?

        (一)作为编译器的指令

        1 Conditional:起条件编译的作用,只有满足条件,才允许编译器对它的代码进行编译。一般在程序调试的时候使用。

        2)DllImport:用来标记非.NET的函数,表明该方法在一个外部的DLL中定义。

        3)Obsolete:这个属性用来标记当前的方法已经被废弃,不再使用了。

        (二)自定义Attribute类

        1)Attribute的命名规范

也就是你的Attribute的类名+"Attribute",当你的Attribute施加到一个程序的元素上的时候,编译器先查找你的Attribute的定义,如果没有找到,那么它就会查找“Attribute名称"+Attribute的定义。如果都没有找到,那么编译器就报错。

       2)可以通过AttributeUsage的Attribute来限定你的Attribute所施加的元素的类型

     [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)]
   public classClassMethodTargetAttribute : Attribute{}

       以上只是对它的一些简单的了,实例等下次再附加。

三、联想到什么?

        通过以上对Attribute的一些介绍,我们知道在类的成员中有property成员,二者在中文中都做属性解释,那么它们到底是不是同一个东西呢?从代码上看,明显不同。

         首先,它们在代码中的位置不同

         其次,写法不同(Attribute必须写在一对方括号中)

四、作用

          那么它到底有什么作用呢?接下来谈谈自己的体会

        1)修饰C#代码,对其进行描述或声明;

        2)在运行时通过反射来获取并使用其声明或控制信息。[不是供一般意义上调用或使用的]

五、总结

          通过以上对Attribute的介绍,简单的概括就是修饰C#代码并对其类型、方法和属性等的描述和声明的类。在下一篇会通过实例来进一步对其进行介绍。

Attribute之基础

标签:.net

原文地址:http://blog.csdn.net/liu_yujie2011com/article/details/43607689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!