首页 | 头版要闻 | 经济广角 | 消费聚焦 | 民生视点
社会 | 省内要闻 | 经济论坛 | 市场特刊 | 财富周刊
经济 | 中国经济 | 经济观察 | 家庭百科 | 网络热点
您现在的位置: 河北经济日报网 >> 网络技术 >> C >> 文章正文 站内检索
服务热线:0311-88606031
同期新稿
 
普通文章 c#中获取存储过程方法
普通文章 在Visual C#中定义和使用自己的特性
普通文章 Visual C#2005中使用正则表达式
普通文章 利用C#远程存取Access数据库
普通文章 C#动态生成树型结构的Web程序设计
普通文章 论C#变得越来越臃肿是不可避免的
普通文章 用C#监控并显示CPU状态信息
普通文章 C#中实现VB中的CreateObject方法
普通文章 使用C#创建SQL Server的存储过程
普通文章 c#数据库操作的3种典型用法
普通文章 c#调用oracle存储过程返回结果集及函数
普通文章 C#3.0 中 DLINQ 从数据库获得数据集,XLINQ从
普通文章 C程序实现汉字内码与GB码
普通文章 C#3.0 中对象初始化器(Object Initializers)和
普通文章 C#3.0 LINQ 查询语法
普通文章 C#将文件保存到数据库中或者从数据库中读取文
普通文章 C#3.0 中的扩展方法 (Extension Methods)
普通文章 C#3.0 中使用扩展方法来扩展接口
普通文章 C#3.0 中对象初始化器(Object Initializers)和
普通文章 C#与IronPython脚本进行数据交互示例
在Visual C#中定义和使用自己的特性
http://www.hbjjrb.com 2007-10-2 20:55:49 【字体: 繁体
性的构造器被调用。所以,特性类也可以拥有它们自己的特性,这看起来可能有点混淆,但是随着我给你展示可以用特性类来做些什么,你对它的认识,将会越来越清晰。

  [AttributeUsage]特性具有一个定位参数和两个命名参数。定位参数指定了特性类将被用于何种类型,定位参数的值是枚举AttributeTargets的组合。在我的例子里,我仅仅把特性类应用在类和方法上,所以通过组合两个AttributeTargets的值的满足了我的要求。

  [AttributeUsage]特性的第一个命名参数是AllowMultiple,该参数指定了是否可以在同一个类型上应用多次(你所定义的)特性类。默认值是false,即不允许应用多次。但是,根据这个例子的实际情况,你将会在某一类型上不止一次的应用特性(DefectTrackAttribute),所以应该使用[AttributeUsage]的命名参数AllowMultiple,并将其设置为true。这是因为,一个特定的类和方法在其生命周期里会经历多次修订,所以你需要使用[DefectTrackAttribute]特性记录每一次变化。

  [AttributeUsage]特性的第二个命名参数是Inherited,它指定了派生类(使用此特性类的子类)是否继承此特性。我使用了此参数的默认的值false。因为我使用的是默认值,所以也就不需要指定该命名参数。为什么不需要继承呢?我想获取源代码的修改信息是跟每一个具体的类和方法有关的。如果把Inherited设为true,那么开发者将会混淆一个类的[DefectTrackAttribute]特性,无法辨别[DefectTrackAttribute]特性是它自己的还是从父类继承的。

  上面的代码展示了特性类(DefectTrackAttribute)的定义。它继承于System.Attribute,事实上,所有的特性均直接或间接的继承于System.Attribute。

  上面的代码里,还定义了特性的5个私有的字段,这些字段均用于保存与特性相关的值。

  在我们特性类中第一个方法是构造器,它是带有3个参数的签名。构造器的参数对于特性类而言,就是这个特性的定位参数,这些参数是强制性的。如果你愿意,你可以重载构造器,使其可以拥有更多的有关定位参数配置的选择。

  我们的特性类中剩下的部分就是一些公有属性的声明,这些属性与类中的私有字段相对应。当你查阅元数据的时候,你可以使用这些属性访问该特性的值。需要说明的是,对应定位参数的属性没有set语句,只有get语句。这就导致了这些属性是只读的,这也与它们是定位参数而不是命名参数的含义相一致。

  应用自定义特性

  你现在已经知道在C#代码里,在一个类型声明之前,通过在方括号里使用特性的名字和参数就可以将其附加到目标类型上。

  在下面的代码里,把[DefectTrack]特性附加到一对类和一对方法上。

using System ;
using MyAttributeClasses ;

namespace SomeClassesToTest
{
[DefectTrack( "1377", "12/15/02", "David Tansey" ) ]
[DefectTrack(

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

板块 推荐
普通文章 新能源板块:重出江湖
普通文章 谨慎对待敏感行业
普通文章 环保板块:在政策扶持下成长
普通文章 机构资金关注有色板块
普通文章 汽车板块再受关注
普通文章 新能源股:盈利和成长都重要
普通文章 银行业:未来两年成长可期 推荐5只个股
普通文章 造纸行业:步入景气周期 关注4只个股
房产 推荐
普通文章 业内人士称房产新政出台 购房需求将大降三成
普通文章 调控手段连续累积 上海二手房市出现买主悔约
普通文章 北京经济适用房只能自住 骗购经适房将严惩
普通文章 京城楼市10月份预计开盘46个 数量不足9月七
普通文章 北京石景山3900套两限房均价低于销售限价
普通文章 评论:中国房市会不会步A股后尘
普通文章 投资房产也有风险:给老丁算笔账
普通文章 公积金储蓄年贬值500亿 明天我们怎么养老购
频道精选  
焦点:  银行业30年变革:见证居民财富800倍膨胀
股票:  节后一周大盘有望上攻5700点!
社会:  51岁老汉诱骗收破烂妇女 强奸不成抢走200
主力:  一周个股、板块主力交易数据解密
经济:  央行银监会出台房贷新政
个股:  四季度盈利模式:买入正在爆发的成长蓝筹
时评:  后股改时代国有股减持并非利空
黑马:  航天机电:天威保变连续涨停后谁来接班?
读书:  望“性”兴叹 明清寡妇是如何排解寂寞的(
板块:  新能源板块:重出江湖
体育:  英超宝贝与男友暧昧戏水
基金:  每周基金组合建议:可关注高折价高分红大
军事:  美国军迷们的裸体游行
债券:  可分离债的申购收益水涨船高
时尚:  走光也动人
传闻:  据传,航天长峰注资传闻求证
娱乐:  小S自认沉迷于性爱
理财:  理财日刊:复利投资能涨3倍的股,巧把负债
数码:  黑色到货银色跳水了多普达U1000狠降2000
汽车:  前大灯存缺陷 大众将召回速腾等34万辆车
百科:  中国女性的自慰现状
房产:  业内人士称房产新政出台 购房需求将大降三

普通文章 51岁老汉诱骗收破烂妇女 强奸不成抢走200元
普通文章 黑猩猩挖地道逃离动物园 “越狱”失败遭射杀
普通文章 重庆火车站店主向民工强卖裸女扑克
普通文章 商场"亲吻汽车大赛"结束 女子连吻27小时得轿车

六种最变态的做爱方式

男人眼中最美的女人臀

莲,海容天天的最新裸体行

美女请把裙子穿好

绝对让你喷饭的超强趣图

玩高空裸体跳伞的美女

欧美欢场里的纵欲男女

少妇为何比少女更诱人
同期热点
普通文章 XFocus Windows Internet服务器安全配置
普通文章 Windows 2003 服务器设置 完全版
普通文章 Windows 2003安全设置大全-IIS、终端服务、FT
普通文章 C#事件机制归纳
普通文章 Mysql 安全注意事项
普通文章 SQL Server加密与SQL注入
普通文章 注意那些容易被忽略的SQL注入技巧
普通文章 不需xp_cmdshell支持在有注入漏洞的SQL服务器
普通文章 MySQL数据库中关于网络安全的解决方案
普通文章 如此高效通用的分页存储过程是带有sql注入漏洞
普通文章 忘记了 MySQL 的 root 密码
普通文章 SQL2000中默认sa帐号改名和删除的最安全方法
普通文章 黑客经验谈Sql server SA权限入侵的感悟
普通文章 利用ORACLE系统账户默认口令提升权限
普通文章 什么是SQL注入法攻击
普通文章 js asp c# 防止sql注入
普通文章 系统安全之SA弱口令带来的安全隐患
普通文章 MySQL服务器内部安全数据目录访问
普通文章 在MySQL数据库增加新用户权限简介
普通文章 你的MySQL安全了吗?加铸23道安全门

英超宝贝与男友暧昧戏水

英超巨胸宝贝惊人双峰
德国队2比0战胜巴西队夺得2007年女足世界杯冠军
米兰弃将禁欲冷落性感女友 爆射三炮释放存货
国产骨感宝贝刘羽琦
体育世家出美女 体育名嘴容貌靓丽魅力十足

梁家辉受伤入院否认遇袭

《太阳》遭恶搞

张学友3年狂炒菲佣21人

蔡依林秀舞姿主持人下跪

小S自认沉迷于性爱

汤唯《色•戒》全裸入

范冰冰被警察带走

中秋赏月李安崩溃痛哭

河北经济日报社版权所有 河北经济日报社网络信息部管理与维护
地址 石家庄市裕华西路186号 电话:0311-88606031
hebei82gov@yahoo.com.cn
未经许可不得转载和镜像 冀ICP备字020964号
技术支持 动易网络科技有限公司
建议使用1024x768分辨率