频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

C# 特性(Attribute)入门

来源: 作者: 出处:巧巧读书 2006-02-05 进入讨论组
  • 关 键 词:
  • rip
下一页 1 2 

  正如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后缀继续查找。  

   到目前为止,这个特性还没有起到什么作用。下面我们来添加些东西给它使它更有用些。

   using System;
     public class HelpAttribute : Attribute
     {
     public HelpAttribute(String Descrition_in)
     {
     this.description = Description_in;
     }
     protected String description;
     public String Description
     {
     get
     {
     return this.description;
     }
     }
     }
     [Help("this is a do-nothing class")]
     public class AnyClass
     {
     }

   在上面的例子中,我们给HelpAttribute特性类添加了一个属性并且在后续的部分中我们会在运行时环境中查寻它。观看地址: http://www.qqread.com/csharp/p932254000.html 更多文章 更多内容请看Solaris基础知识入门专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章