日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#內(nèi)置特性介紹

 .Net 中可以使用特性來完成這一工作。特性是一個對象,它可以加載到程序集及程序集的對象中,這些對象包括 程序集本身、模塊、類、接口、結構、構造函數(shù)、方法、方法參數(shù)等,加載了特性的對象稱作特性的目標。特性是為程序添加元數(shù)據(jù)(描述數(shù)據(jù)的數(shù)據(jù))的一種機制,通過它可以給編譯器提供指示或者提供對數(shù)據(jù)的說明。

創(chuàng)新互聯(lián)成都網(wǎng)站建設按需求定制開發(fā),是成都網(wǎng)站建設公司,為成都銅雕雕塑提供網(wǎng)站建設服務,有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設計服務:原型圖制作、網(wǎng)站創(chuàng)意設計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站維護熱線:13518219792

NOTE:特性的英文名稱叫做Attribute,在有的書中,將它翻譯為“屬性”;另一些書中,將它翻譯為“特性”;由于通常我們將含有get和/或set訪問器的類成員稱為“屬性”(英文Property),所以本文中我將使用“特性”這個名詞,以區(qū)分“屬性”(Property)。

中文版的VS2005使用“屬性”。

C#內(nèi)置特性之System.ObsoleteAttribute 特性

我們通過這個例子來看一下特性是如何解決上面的問題:我們可以給舊的SendMsg()方法上面加上Obsolete特性來告訴編譯器這個方法已經(jīng)過時,然后當編譯器發(fā)現(xiàn)當程序中有地方在使用這個用Obsolete標記過的方法時,就會給出一個警告信息。

 
 
 
  1. namespace Attribute {
  2.     public class Message {}
  3.     
  4.     public class TestClass {
  5.        // 添加Obsolete特性
  6.        [Obsolete("請使用新的SendMsg(Message msg)重載方法")]
  7.        public static void ShowMsg() {
  8.            Console.WriteLine("這是舊的SendMsg()方法");
  9.        }
  10.        public static void ShowMsg(Message msg) {
  11.            Console.WriteLine("新SendMsg()方法");
  12.        }
  13.     }
  14.     class Program {
  15.        static void Main(string[] args) {
  16.            TestClass.ShowMsg();
  17.            TestClass.ShowMsg(new Message());          
  18.        }
  19.     }
  20. }

現(xiàn)在運行這段代碼,我們會發(fā)現(xiàn)編譯器給出了一個警告:警告CS0618: “Attribute.TestClass.ShowMsg()”已過時:“請使用新的SendMsg(Message msg)重載方法”。通過使用特性,我們可以看到編譯器給出了警告信息,告訴客戶程序存在一個新的方法可供使用,這樣,程序員在看到這個警告信息后,便會考慮使用新的SendMsg()方法。

NOTE:簡單起見,TestClass類和 Program位于同一個程序集中,實際上它們可以離得很遠。

C#內(nèi)置特性的使用方法

通過上面的例子,我們已經(jīng)大致看到特性的使用方法:首先是有一對方括號“[]”,在左方括號“[”后緊跟特性的名稱,比如Obsolete,隨后是一個圓括號“()”。和普通的類不同,這個圓括號不光可以寫入構造函數(shù)的參數(shù),還可以給類的屬性賦值,在Obsolete的例子中,僅傳遞了構造函數(shù)參數(shù)。

NOTE:實際上,當你用鼠標框選住Obsolete,然后按下F12轉(zhuǎn)到定義,會發(fā)現(xiàn)它的全名是ObsoleteAttribute,繼承自Attribute類。但是這里卻僅用Obsolete來標記方法,這是.Net的一個約定,所有的特性應該均以Attribute來結尾,在為對象標記特性時如果沒有添加Attribute,編譯器會自動尋找?guī)в蠥ttribute的版本。

NOTE:使用構造函數(shù)參數(shù),參數(shù)的順序必須同構造函數(shù)聲明時的順序相同,所有在特性中也叫位置參數(shù)(Positional Parameters),與此相應,屬性參數(shù)也叫做命名參數(shù)(Named Parameters)。

以上就是C#內(nèi)置特性的簡單介紹。


分享題目:C#內(nèi)置特性介紹
文章轉(zhuǎn)載:http://www.5511xx.com/article/djgdodd.html