c# 特性 attribute -凯发k8官方网
特性就是在类的类名称、属性、方法等上面加一个标记,使这些类、属性、方法等具有某些统一的特征,从而达到某些特殊的需要。举个小栗子:方法的异常捕捉,你是否还在某些可能出现异常的地方(例如数据库的操作、文件的操作等)经常使用try...catch。这个时候如果使用特性,就可 以大大减少方法里面的try...catch的使用。你只需要定义一个专门捕捉异常的特性类exceptionexattribute,然后给这个特性类 做些特殊处理,比如给它增加一个aop拦截的功能(aop拦截的方式很多,有兴趣可以搜搜看,园子里面很多类似的文章)。那么在可能出现异常的方法名称上 面加上一个[exceptionex]特性标签,这个方法就具有自动捕捉异常的能力。由此可见,特性可以减少统一需求的代码量.
官方描述:
特性(attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。
特性(attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.net 框架提供了两种类型的特性:预定义特性和自定义特性
1.预定义特性
.net 框架提供了三种预定义特性:
·attributeusage 起条件编译的作用,只有满足条件,才允许编译器对它的代码进行编译。一般在程序调试的时候使用。
·conditional 描述了如何使用一个自定义特性类。它规定了特性可应用到的项目的类型。
·obsolete 这个属性用来标记当前的方法已经被废弃,不再使用了。
举个小栗子a如下:
[obsolete("don't use oldmethod, use newmethod instead", true)]static void oldmethod(){console.writeline("it is the old method");}static void newmethod(){console.writeline("it is the new method");}static void main(string[] args){oldmethod();newmethod();console.readkey();}实际上是这样
2.自定义特性
特性是给目标类型添加描述性的元数据,它不会影响代码的运行。自定义特性的命名必须以attribute结尾,如definedattribute, 而在使用的时候可以直接用[defined]或者[definedattribute]
小栗子b如下:
public class definedattribute:attribute{private string name { get; set; }private string sex { get; set; }public definedattribute(string _name,string _sex){this.name = _name;this.sex = _sex;}}public class testattribute{[defined("小明","男")][defined("张伟","女")]public void a(){console.writeline("111");}}
转载于:https://www.cnblogs.com/miaoying/p/5022253.html
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是凯发k8官方网为你收集整理的c# 特性 attribute的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: