多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > C# 之 擴(kuò)展方法

C# 之 擴(kuò)展方法

來源:程序員人生   發(fā)布時(shí)間:2014-12-15 08:50:52 閱讀次數(shù):3271次
擴(kuò)大方法
         擴(kuò)大方法使您能夠向現(xiàn)有類型“添加”方法,而無需創(chuàng)建新的派生類型、重新編譯或以其他方式修改原始類型。擴(kuò)大方法是1種特殊的靜態(tài)方法,但可以像擴(kuò)大類型上的實(shí)例方法1樣進(jìn)行調(diào)用。對用 C# 和 Visual Basic 編寫的客戶端代碼,調(diào)用擴(kuò)大方法與調(diào)用在類型中實(shí)際定義的方法之間沒有明顯的差異。


       如果我們有這么1個(gè)需求,將1個(gè)字符串的第1個(gè)字符轉(zhuǎn)化為大寫,第2個(gè)字符到第n個(gè)字符轉(zhuǎn)化為小寫,其他的不變,那末我們該如何實(shí)現(xiàn)呢?


不使用擴(kuò)大方法:

<span style="font-size:10px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExtraMethod { //抽象出靜態(tài)StringHelper類 public static class StringHelper { //抽象出來的將字符串第1個(gè)字符大寫,從第1個(gè)到第len個(gè)小寫,其他的不變的方法 public static string ToPascal(string s,int len) { return s.Substring(0, 1).ToUpper() + s.Substring(1, len).ToLower() + s.Substring(len + 1); } } class Program { static void Main(string[] args) { string s1 = "aSDdAdfGDFSf"; string s2 = "sbfSDffsjG"; Console.WriteLine(StringHelper.ToPascal(s1,3)); Console.WriteLine(StringHelper.ToPascal(s2, 5)); } } }</span>






使用擴(kuò)大方法:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExtraMethod { class Program { static void Main(string[] args) { string s1 = "aSDdAdfGDFSf"; string s2 = "sbfSDffsjG"; Console.WriteLine(s1.ToPascal(3)); Console.WriteLine(s2.ToPascal(5)); } } //擴(kuò)大類,只要是靜態(tài)就能夠 public static class ExtraClass { //擴(kuò)大方法--特殊的靜態(tài)方法--為string類型添加特殊的方法ToPascal public static string ToPascal(this string s, int len) { return s.Substring(0, 1).ToUpper() + s.Substring(1, len).ToLower() + s.Substring(len + 1); } } }






通過上面兩種方法的比較:
    1.代碼在訪問ToPascal這樣的靜態(tài)方法時(shí)更加便捷。用起來就像是被擴(kuò)大類型確切具有該實(shí)例方法1樣。
    2.擴(kuò)大方法不改變被擴(kuò)大類的代碼,不用重新編譯、修改、派生被擴(kuò)大類
    

定義擴(kuò)大方法
    1.定義1個(gè)靜態(tài)類以包括擴(kuò)大方法。
    2.該類必須對客戶端代碼可見。
    3.將該擴(kuò)大方法實(shí)現(xiàn)為靜態(tài)方法,并使其最少具有與包括類相同的可見性。
    4.方法的第1個(gè)參數(shù)指定方法所操作的類型;該參數(shù)必須以 this 修飾符開頭。


請注意,第1個(gè)參數(shù)不是由調(diào)用代碼指定的,由于它表示正利用運(yùn)算符的類型,并且編譯器已知道對象的類型。 您只需通過 n 為這兩個(gè)形參提供實(shí)參。



注意事項(xiàng):
    1.擴(kuò)大方法必須在靜態(tài)類中定義
    2.擴(kuò)大方法的優(yōu)先級低于同名的類方法
    3.擴(kuò)大方法只在特定的命名空間內(nèi)有效
    4.除非必要不要濫用擴(kuò)大方法







生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美在线观看a | 国产成人免费a在线资源 | 亚洲精品午夜久久久伊人 | xxxxx免费视频 | 综合九九 | 亚洲美女一区 | 欧美男人的天堂 | 久久人人澡| 国产69久久精品成人看小说 | 激情久久久久久久久久 | 羞羞网站| 欧美x性| 国产精品久久久久久网站 | 久久国产精品只做精品 | 日本三级成人中文字幕乱码 | 国产性夜夜春夜夜爽 | 日本亚洲精品久久 | 精品一区二区三区免费观看 | 国产不卡免费视频 | 69热视频 | 国产精品视_精品国产免费 国产精品视频1区 | 国产精品久久永久免费 | 国产精品第1页在线播放 | 91精品福利观看 | 午夜男人视频 | 亚洲欧美日韩精品永久在线 | 欧美日韩综合网 | 久久欧美久久欧美精品 | 国产精品1区2区 | 久久久青草青青国产亚洲免观 | 免费一区二区三区四区五区 | 一级a毛片免费观看久久精品 | 欧美妇性猛交视频 | 羞羞免费网页登界面入口 | 中文字幕38页| 五月在线视频 | 国产亚洲精品久久久久久无 | 日韩精品一区二区三区小说 | 亚洲精品中文字幕一区在线 | 国产第一页福利 | 中文字幕第一页在线播放 |