通行证: 用户 密码
http://www.pconline.cn/
汽车网 | 游戏网 | 时尚女性
分站:北京 上海 广州 深圳 香港
广西 重庆 山东 江苏 辽宁 福建
首 页 | 今日报价 | 新闻中心 | 数码世界 | 硬件资讯 | 软件资讯 | 下 载 | 游 戏 |
论 坛 | 产 品 库 | 渠道商情 | 招聘培训 | 二    手 | 评 测 室 | 导 购 | 社 区 |
摄影
部落
手 机
数码相机
随身听
 DIY配件
笔记本
 台式机
摄像机
精品廊
-
您现在的位置:软件资讯 > 开发特区 > .net技术 > C#
  C# 特性(Attribute)入门教程 出处:sadaf alvi
[ 2005-06-15 10:06:00 ] 作者:sadaf alvi 翻译:cppbug 责任编辑:moningfeng
-
  绪论

  特性(Attributes)是一种崭新的声明性信息。我们不仅可以通过特性来定义设计层面的信息(例如help file, URL for documentation)以及运行时(run-time)信息(例如使XML与class相联系),而且我们还可以利用特性建立自描述(self-describing)组件。在这篇教程中,我们将会看到如何建立和添加特性到各种程序实体以及如何在运行时环境中获取特性信息。



  定义

  正如MSDN中所描述的那样-----“特性是被指定给某一声明的一则附加的声明性信息。”

  使用预定义(Pre-defined)特性

  在C#中,有一个小的预定义特性集合。在学习如何建立我们自己的定制特性(custom attributes)之前,我们先来看看在我们的代码中如何使用预定义特性。

  using System;

  public class AnyClass
{
[Obsolete("Don't use Old method, use New method", true)]
static void Old( ) { }

static void New( ) { }

public static void Main( )
{
Old( );
}
}



  我们先来看一下上面这个例子,在这个例子中我们使用了Obsolete特性,它标记了一个不应该再被使用的程序实体。第一个参数是一个字符串,它解释了为什么该实体是过时的以及应该用什么实体来代替它。实际上,你可以在这里写任何文本。第二个参数告诉编译器应该把使用这个过时的程序实体当作一种错误。它的默认值是false,也就是说编译器对此会产生一个警告。

  当我们尝试编译上面这段程序的时候,我们将会得到一个错误:

  AnyClass.Old()' is obsolete: 'Don't use Old method, use New method'

  开发定制特性(custom attributes)

  现在让我们来看看如何开发我们自己的特性。

  首先我们要从System.Attribute派生出我们自己的特性类(一个从System.Attribute抽象类继承而来的类,不管是直接还是间接继承,都会成为一个特性类。特性类的声明定义了一种可以被放置在声明之上新的特性)。

using System;
public class HelpAttribute : Attribute
{
}



  不管你是否相信,我们已经建立了一个定制特性,现在我们可以用它来装饰现有的类就好像上面我们使用Obsolete attribute一样。

[Help()]
public class AnyClass
{
}



  注意:对一个特性类名使用Attribute后缀是一个惯例。然而,当我们把特性添加到一个程序实体,是否包括Attribute后缀是我们的自由。编译器会首先在System.Attribute的派生类中查找被添加的特性类。如果没有找到,那么编译器会添加Attribute后缀继续查找。

天敏贴纸相框设计大赛,千元大奖等你拿!

[1] [2] [3] [下一页]

正在加载评论,请稍候…

ad
发给好友 我要报错 投稿给我们 加入收藏 返回顶部

本栏今日更新
相关文章
·新闻一周谈:微软的鸡肋你会尝吗?
·空前绝后!Longhorn构件配置可任选
·感受Glass效果,新Longhorn转换包登场
·功能提升显著,卡巴斯基2006 beta发布
·百变空间天下我为先!QQ-Zone试用
·表情[搞笑]:别惹女人喔!
·BT首选:BitComet新版两大亮点试用
·给在校生-JAVA学习,一条漫长的道路
·用Visual C#打造个性化的IE浏览器
·C#中简单调用c/c++旧模块
·三种使用SMTP协议发送邮件的方法
·C#编程让Outlook乖乖交出帐户密码
·C#实现Web文件上传的两种方法
·浅谈网络时间校正原理及实践运用
·保证你现在和未来不失业的十种关键技术
·上网兜兜风!用C#实现Web代理服务器(下)

完美时尚娱乐:2004年腾讯QQ评测大观
精彩无限:MSN Shell4使用指南
亲手制作鲜花情人贺卡送给她
挑战伏明霞?企鹅跳水游戏,看你能得多少分?

新闻搜索
高级搜索
Flash排行榜
·《老鼠爱大米》黑白版
·超好玩小游戏!淘金者
·Take Me To Your Heart
·当你孤单你会想起谁
·飞儿乐队:我们的爱
·下辈子如果我还记得你
·酸酸甜甜就是我
·别说我的眼泪你无所谓
·大学自习室继-就说
·林俊杰-一千年以后
热点专题
·玩转MSN技巧,带给您好心情!
·电脑艺术设计大师之路连载
·老歌歪唱Flash MV爆笑欣赏
·2005年XP SP2全新技巧放送
·视频轻松学Dreamweaver教程
·瞩目!QQ2005 Beta1火热发布
·全面了解FireFox浏览器
·情人节感动MM的十首MV
·搜索技巧总汇:体验网罗天下的乐趣
·网络原创音乐Flash大收集
·挑战30天 C/C++ 入门极限系列教程
·视频教程专栏, 助你轻松学软件
IT培训十大热门文章
-