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

C#程序設計中特性詳細介紹

編輯:C#入門知識

使用.NET框架編寫Windows程序,在很多方面已經變得很簡單。在許多情況下,.NET框架使用,.NET編譯器在編譯時綁定到程序集的元數據,.使靈活的程序設計變得更容易。事實上,對於.NET而言,使用內嵌的元數據把我們從DLL地獄解脫出來是可能的。

 

值得慶幸的是,.NET框架的設計者們並沒有選擇把這些元數據優雅的隱藏起來。設計者們把反射API給予了我們,通過反射,一個.NET程序可以通過編程查看這個元數據。一個程序可以反射出包含在特定程序集內任意的東西,或者說是包含在其內的所有的類型和成員。

 

把元數據綁定到可執行的程序集裡,提供了許多優勢。這使得.NET程序集,完全可以自我描述。還允許開發者跨語言共享組件,去除了頭文件的需要。(這些頭文件會由於相關的實現代碼而過期。)

 

關於.NET元數據所有積極的消息,看起來很難相信,它好像什麼也沒有,僅僅是個謊言。但是,它確實是存在的。在.NET裡,你可以創建自己特定程序的元數據,並且可以把這些元數據應用到你可以想象到的地方。

 

開發者通過使用自定義特性,可以定義他們自己特定程序的元數據。因為這些特性的值將變成另一部分元數據,綁定到一個程序集裡。所以這些自定義特性的值可以被反射API檢查到並且可以被使用。

 

我們經常提到一個類的屬性,這些屬性的值可以作為特性來使用。那麼屬性和自定義特性真正的區別在哪裡呢?

 

通過這篇文章,你將學會如何定制特性,如何把特性應用到你的源代碼類和方法上,以及如何使用反射API獲取和使用這些特性的值。

 

公共語言運行時是如何使用特性的?


在你開始考慮如何使用你自己定義的特性類之前,讓我們查看一些標准的特性,這些已經在公共語言運行時有用到。

 

[WebMethod]特性提供了一個簡單的例子。它可以使WebService派生的子類中任意公共的方法轉化成Web Service暴露方法的一部分,而這一切,僅僅通過把[WebMethod]附加到方法的定義上就可以做到。

\public class SomeWebService : System.Web.Services.WebService
\\{
\        
\        [WebMethod]
\        public DataSet GetDailySales()
\\        {
\            //處理請求的代碼
\        }
\}
\


你只要把[WebMethod]特性添加到一個方法上,.NET就會在後台為你處理其它所有的事情。

 

在給定的方法上使用[Conditional]特性,那麼此方法是否可調用將取決於指定的預處理標識符是否被定義。舉個例子,看如下的代碼:

\public class SomeClass
\\{
\        [Conditional("DEBUG")]
\      &

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