.NET简谈特性(代码属性)

来源:深度训练(DotNet专场) 责任编辑:栏目编辑 发表时间:2013-07-02 00:48 点击:

由于很久没有写关于基础知识的东西了,今天来总结一下关于.NET平台中的代码属性的概念;只是基础介绍,文章的本意是带领初学者学会使用特性,而不是讨论高深的底层技术;[王清培版权所有,转载请给出署名]

1.什么叫特性Attribute

特性对一般.NET编程人员来说并不陌生,自从我们开始接触C#语言的时候,我们多多少少已经接触了关于特性的使用;但是对于初学者来说真的不明白特性的意义,特性到底是属于类还是类实例,这些概念搞不清楚对理解代码的逻辑真的很顺利;这篇文章我将带您来了解特性的作用,其实特性的真的很方便;至少我认为自从我懂特性之后,我的代码便的更加的人性化,程序的结构清晰易懂,所以本人在写代码的时候经常喜欢用一些能够简单明了的表达对象的特点的风格;

其实特性Attribute就是一段代码属性,附加在我们定义的对象上的,特性属于对象而不是实例,这个概念要注意;为什么需要特性,我想任何一个开发人员都不需要问为什么,因为它的好处我们是拍手叫绝的,好东西为什么不要呢;之所以你没感觉到是因为朋友你还没发现他的优点;我们还是拿代码例子来讲吧,这样便于我们双向交流;

2.实例代码学习

  1. using System;    
  2. using System.Collections.Generic;    
  3. using System.Text;    
  4. namespace AttributeTest    
  5. {    
  6.     [TableName(Name = "Tb_UserName")]    
  7.     public class M_UserName    
  8.     {    
  9.     }    
  10. }   

这段代码里,我有一个M_UserName类,在类的上面我加了一个TableName的特性,这个特性是用来标识我这个类对应着数据库表的名称,这样的应用一般都会在ORM中出现;TableName是我们自己定义的一个特性,这样的特性不能影响系统的编译行为,而系统的特性会改变代码的编译行为,这样的编译控制是有必要的,比如我们在进行.NET安全编程的时候,经常会用到SecurityPermissionAttribute特性控制代码的安全执行逻辑,操作系统的API最重要的一个作用就是权限控制,以免大家一起进入内核;如果不用特性进行标记,那么所有的方法都会被统一编译无法控制;[王清培版权所有,转载请给出署名]

我们回到TableName特性,特性是一中特殊的类型,这个类型继承自Attribute对象;

  1. using System;    
  2. using System.Collections.Generic;    
  3. using System.Text;    
  4. namespace AttributeTest    
  5. {    
  6.     /// <summary>    
  7.     /// 数据库表的名称    
  8.     /// </summary>    
  9.     [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]    
  10.     public class

      相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 浅析.NET下XML数据访问新机制
      • asp.net 面试+笔试题目第1/2页
      • C# 邮件地址是否合法的验证
      • C#高级编程:数据库连接[1]
      • asp.net 设置GridView的选中行的实现代码
      • 经典C++程序1
      • IIS 自动回收导致后台定时器失效的问题解决
      • ASP.NET&#160;GridView列表代码示例
      • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1