C#之Attribute(特性)
2015-09-04 23:42
246 查看
本文主要复习下基础知识:
1.C#系统自带的特性:
建立一个控制台项目取名为AttributeTest:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/3900c64f9f4e2bd207e871d8243ccefa.png)
我们添加了一个系统自带的Attribute叫Condition,这个特性表示在程序的DEBUG状态下才可以运行方法,我们在DEBUG下运行可以正常输出:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/ed31b8b37f6c68a97de4fffb621f13ea.png)
然后我们改为Release模式不会看到结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/59a5b1c95f5f93e01ef20e1ccada7063.png)
我们也可以写一个预处理指令在Release模式下也可以实现DEBUG的效果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/576e1096282d01b4b2c4da2712ca45d7.png)
下面再来试下第二个系统自带的特性Obsolete,用来标识方法还能不能用的特性,如果当一个方法加了Obsolete特性且指定了错误信息的显示那么在调试生成的时候就不能通过编译:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/52f28da85828748bfbf5fe06e7f25fef.png)
2.自定义Attribute
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/5da1efc2ff0f8625d495c2eb720a0d99.png)
3.通过反射来获取到2自定义的特性里面的信息:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/1f452d8dba45d45b02a548607827b76c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/900abc1005187cadf3c7bf8290e405db.png)
![](http://www.cnblogs.com/yk123/p/file:/C:\Users\DYK\AppData\Roaming\Tencent\Users\1165726174\QQ\WinTemp\RichOle\~M2X`@5}`2VM3FQ0XC6F6SG.png)
1.C#系统自带的特性:
建立一个控制台项目取名为AttributeTest:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/3900c64f9f4e2bd207e871d8243ccefa.png)
我们添加了一个系统自带的Attribute叫Condition,这个特性表示在程序的DEBUG状态下才可以运行方法,我们在DEBUG下运行可以正常输出:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/ed31b8b37f6c68a97de4fffb621f13ea.png)
然后我们改为Release模式不会看到结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/59a5b1c95f5f93e01ef20e1ccada7063.png)
我们也可以写一个预处理指令在Release模式下也可以实现DEBUG的效果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/576e1096282d01b4b2c4da2712ca45d7.png)
下面再来试下第二个系统自带的特性Obsolete,用来标识方法还能不能用的特性,如果当一个方法加了Obsolete特性且指定了错误信息的显示那么在调试生成的时候就不能通过编译:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/52f28da85828748bfbf5fe06e7f25fef.png)
2.自定义Attribute
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/5da1efc2ff0f8625d495c2eb720a0d99.png)
3.通过反射来获取到2自定义的特性里面的信息:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/1f452d8dba45d45b02a548607827b76c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/900abc1005187cadf3c7bf8290e405db.png)
![](http://www.cnblogs.com/yk123/p/file:/C:\Users\DYK\AppData\Roaming\Tencent\Users\1165726174\QQ\WinTemp\RichOle\~M2X`@5}`2VM3FQ0XC6F6SG.png)
![](http://www.cnblogs.com/yk123/p/file:/C:\Users\DYK\AppData\Roaming\Tencent\Users\1165726174\QQ\WinTemp\RichOle\DN2NK$7LS@0B]U8%(Y~V90H.png)
相关文章推荐
- C#高性能大容量SOCKET并发(五):粘包、分包、解包
- c#使用itextsharp输出pdf(动态填充表单内容,显示中文)
- c#使用itextsharp输出pdf(动态填充表单内容,显示中文)
- 【转】c#引用类型与值类型的区别大盘点
- C#异步函数
- C#调试含有源代码的动态链接库遇见there is no source code available for the current location提示时的解决方案
- C#程序双击运行之后,界面不显示,但是在任务管理器有进程(一个winform找bug之旅)
- c#------ado.net
- C#异步绑定数据实现方法
- C#执行存储过程以及传参获取返回值
- C#并行编程 (Barrier,CountdownEvent,ManualResetEventSlim,SemaphoreSlim,SpinLock,SpinWait )
- C# 关键字列表
- C# 关键字列表
- C#实现在Form里面内嵌dos窗体的方法
- 简简单单C#爬虫小计
- C#使用windows服务开启应用程序的方法
- C# 函数的传值与传址(转)
- C# Winform WCF 调试服务端的程序(三种方法)
- C# Winform WCF 调试服务端的程序(三种方法)
- C#动态二维数组