程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 語言標准--1.14 屬性

C# 語言標准--1.14 屬性

編輯:C#入門知識

C# 是一種命令式語言,但像所有命令式語言一樣,它具有某些聲明性元素。例如,通過將類中的方法聲明為 publicprotectedinternalprotected internalprivate,指定它的可訪問性。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 屬性,如果具有該屬性,則寫出關聯的 TopicUrl 值。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved