溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中有哪些內置特性

發布時間:2021-07-07 16:01:17 來源:億速云 閱讀:228 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關C#中有哪些內置特性,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

C#內置特性之System.ObsoleteAttribute 特性

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

namespace Attribute {       public class Message {}            public class TestClass {         // 添加Obsolete特性         [Obsolete("請使用新的SendMsg(Message msg)重載方法")]         public static void ShowMsg() {             Console.WriteLine("這是舊的SendMsg()方法");         }          public static void ShowMsg(Message msg) {             Console.WriteLine("新SendMsg()方法");         }       }       class Program {         static void Main(string[] args) {             TestClass.ShowMsg();             TestClass.ShowMsg(new Message());                   }      }  }

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

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

C#內置特性的使用方法

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

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

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

上述就是小編為大家分享的C#中有哪些內置特性了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女