Attribute之基础

         在工作的过程中看到实体类里用了很多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#代码并对其类型、方法和属性等的描述和声明的类。在下一篇会通过实例来进一步对其进行介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值