EDU511 国际专业IT教育服务门户
设为首页   加入收藏    联系我们
寻找IT教育内容合作伙伴
招聘教育网络编辑和运营门户高手
中讯IT教育2008年改版上线
寻找地方站运营伙伴QQ:59955917
中讯IT 技术成就未来
   你现在的位置:首页 >> 新闻系统 >> 程序设计 >> .net教程 >> c#教程 >> c#基础教程 >> 正文

C# 语言规范--1.14 属性

 
 
日期:08-05-15 16:06:13 点击: 来源:技术网
 

  C# 是一种命令式语言,但像所有命令式语言一样,它具有某些声明性元素。例如,通过将类中的方法声明为 public、protected、internal、protected internal 或 private,指定它的可访问性。C# 使此功能一般化,以便程序员可以创造出一种新的声明性信息,将此声明性信息附加到各种程序实体,并在运行时检索此声明性信息。程序通过定义和使用属性(第 17 节)来描述这类额外的声明性信息。

  例如,一个框架也许会定义一个可放置在程序元素(如类和方法)上的 HelpAttribute 属性,使开发人员能够提供从程序元素到其文档的映射。示例

using System;
[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute: Attribute
{
   public HelpAttribute(string url) {
      this.url = url;
   }
   public string Topic = null;
   private string url;
   public string Url {
      get { return url; }
   }
}

  定义了一个名为 HelpAttribute 的属性类,它具有一个定位参数 (string url) 和一个命名参数 (string Topic)。正如第 17.1 节中所解释的,该属性可以通过它的完整名称 HelpAttribute 或通过它的隐式简称 Help 引用。定位参数由该属性类的公共实例构造函数的形参定义,命名参数则由属性类的公共非静态读写字段和对应的属性定义。

  示例

[Help("http://www.microsoft.com/.../Class1.htm")]
public class Class1
{
   [Help("http://www.microsoft.com/.../Class1.htm", Topic = "F")]
   public void F() {}
}

  显示 Help 属性的几种用法。

  在运行时可以利用反射支持检索给定程序元素的属性信息。示例

using System;
class Test
{
   static void Main() {
      Type type = typeof(Class1);
      object[] arr = type.GetCustomAttributes(typeof(HelpAttribute), true);
      if (arr.Length == 0)
         Console.WriteLine("Class1 has no Help attribute.");
      else {
         HelpAttribute ha = (HelpAttribute) arr[0];
         Console.WriteLine("Url = {0}, Topic = {1}", ha.Url, ha.Topic);
      }
   }
}

  检查 Class1 是否具有 Help 属性,如果具有该属性,则写出关联的 Topic 和 Url 值。

 
责任编辑:
 
前一篇:
后一篇:
相关新闻(文章)

C# 语言规范--2.2.1 文法表示法        2008-05-15C# 语言规范--1.13 版本控制        2008-05-15C# 语言规范--1.12 命名空间和程序集        2008-05-15C# 语言规范--1.11 枚举        2008-05-15C# 语言规范--1.10 委托        2008-05-15C# 语言规范--1.9 接口        2008-05-15C# 语言规范--1.8 结构        2008-05-15C# 语言规范--1.7 类        2008-05-15

 
登录模块加载中...
友情链接
重庆之窗 | 重庆IT教育 | 我爱论文网 | 涪陵课件园 | 中国教育导航 | 第一教育网 | 中华IT培训网 
百度网址大全   重庆电脑维修网   华育国际教育 maple story   中国销售培训网    更多友情链接>>>
地址:重庆渝中区大坪正街88号 Copyright © edu511.com All rights reserved.
本站建设得到北京泰胜得风险投资机构、重庆网通信息港、平全教育服务中心与的大力支持            重庆视网科技发展有限公司版权所有 邮编:400041
电话:023-61630611 15902314551            ICP备案号:渝ICP备08002346号 QQ:59955917       邮箱:sysium_yuh@126.com yuhong@edu511.com