C# HelpAttribute屬性
本文向大家介紹C# HelpAttribute屬性,可能好多人還不知道HelpAttribute屬性,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
C# 是一種命令式語言,但像所有命令式語言一樣,它具有某些聲明性元素。例如,通過將類中的方法聲明為 public、protected、internal、protected internal 或 private,指定它的可訪問性。C# 使此功能一般化,以便程序員可以創(chuàng)造出一種新的聲明性信息,將此聲明性信息附加到各種程序?qū)嶓w,并在運(yùn)行時(shí)檢索此聲明性信息。程序通過定義和使用屬性來描述這類額外的聲明性信息。
例如,一個(gè)框架也許會(huì)定義一個(gè)可放置在程序元素(如類和方法)上的C# HelpAttribute屬性,使開發(fā)人員能夠提供從程序元素到其文檔的映射。
- 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; }
- }
- }
定義了一個(gè)名為C# HelpAttribute屬性類,它具有一個(gè)定位參數(shù) (string url) 和一個(gè)命名參數(shù) (string Topic)。正如第 17.1 節(jié)中所解釋的,該屬性可以通過它的完整名稱 HelpAttribute 或通過它的隱式簡(jiǎn)稱 Help 引用。定位參數(shù)由該屬性類的公共實(shí)例構(gòu)造函數(shù)的形參定義,命名參數(shù)則由屬性類的公共非靜態(tài)讀寫字段和對(duì)應(yīng)的屬性定義。
- [Help("http://www.microsoft.com/.../Class1.htm")]
- public class Class1
- {
- [Help("http://www.microsoft.com/.../Class1.htm", Topic = "F")]
- public void F() {}
- }
顯示 Help 屬性的幾種用法。
在運(yùn)行時(shí)可以利用反射支持檢索給定程序元素的屬性信息。
- 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 屬性,如果具有該屬性,則寫出關(guān)聯(lián)的 Topic 和 Url 值。
【編輯推薦】