這篇文章主要詳解C#中的擴(kuò)展方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。
站在用戶的角度思考問題,與客戶深入溝通,找到沙坡頭網(wǎng)站設(shè)計與沙坡頭網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋沙坡頭地區(qū)。擴(kuò)展方法(Extension Methods)是C#3.0時引入的新特性,相信很多人都聽過并且也都用過,最常見的是在LINQ中的使用。
不僅如此,在開發(fā)中,我們也可以創(chuàng)建自己擴(kuò)展方法,使用它來優(yōu)化類的設(shè)計、簡化代碼。本文將簡單地介紹擴(kuò)展方法的概念、定義、使用場景以及要注意的點(diǎn)。
一、概念
擴(kuò)展方法是一種特殊類型的靜態(tài)方法。對于一個C#類型,如類(包括密封類)、值類型、接口等,擴(kuò)展方法可以在不改變該類型源碼的前提下,為它的實(shí)例提供新的成員。因此,若要為一個框架或第三方庫的某個類型增加輔助功能,通過擴(kuò)展方法就可以輕而易舉地實(shí)現(xiàn),這也是“擴(kuò)展”的意義所在。
二、如何定義
創(chuàng)建擴(kuò)展方法很簡單,有以下幾個步驟:
1、創(chuàng)建一個靜態(tài)類;
2、在其中創(chuàng)建一個靜態(tài)方法;
3、為這個靜態(tài)方法添加至少一個參數(shù),并在第一個參數(shù)前加上this關(guān)鍵字,這個關(guān)鍵字會告訴編譯器當(dāng)前方法是一個擴(kuò)展方法。而這個方法將成為第一個參數(shù)所屬類型的新成員。
以下一個典型的擴(kuò)展方法,用于為枚舉值提供一個可獲取其DescriptionAttribute特性值的方法:
namespace TLA. Infrastructure. Extensions public static class EnumExtensions { public static string GetDescription(this Enum en) { Type type = en. GetType(); MemberInfo[] memInfo = type . GetMember(en. ToString()); if (memInfo != null && memInfo.Length > 0) { object[] attrs = memInfo[0] . GetCustomAttributes (typeof (DescriptionAttribute), false); if (attrs != null && attrs. Length > 0){ return ( (DescriptionAttribute )attrs [0]) . Description; } } return en. ToString(); } } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。