日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > C# 之 擴展方法

C# 之 擴展方法

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


       如果我們有這么1個需求,將1個字符串的第1個字符轉化為大寫,第2個字符到第n個字符轉化為小寫,其他的不變,那末我們該如何實現呢?


不使用擴大方法:

<span style="font-size:10px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExtraMethod { //抽象出靜態StringHelper類 public static class StringHelper { //抽象出來的將字符串第1個字符大寫,從第1個到第len個小寫,其他的不變的方法 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>






使用擴大方法:
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)); } } //擴大類,只要是靜態就能夠 public static class ExtraClass { //擴大方法--特殊的靜態方法--為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這樣的靜態方法時更加便捷。用起來就像是被擴大類型確切具有該實例方法1樣。
    2.擴大方法不改變被擴大類的代碼,不用重新編譯、修改、派生被擴大類
    

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


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



注意事項:
    1.擴大方法必須在靜態類中定義
    2.擴大方法的優先級低于同名的類方法
    3.擴大方法只在特定的命名空間內有效
    4.除非必要不要濫用擴大方法







生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久se精品一区精品二区 | 国产精品99999| 久久国产系列 | 久色成人 | 国产精品一区视频 | 亚洲欧美色图片 | 欧美日一区二区 | 黄色片免费在线观看 | 久久国产精品视频免费看 | 久久久久美女 | 一级激情视频 | 久久精品一区二区三区四区 | 亚洲精品日韩综合观看成人91 | 人人人人人人 | 欧美成人精品一区 | 欧美一区二区三区四区不卡 | 91不卡| 成人影院免费观看 | 91九色论坛| 国产性av| 性做久久久久久免费观看欧美 | 久久久91精品国产一区二区三区 | 青青草免费在线视频播放 | 久草av在线播放 | 国产精品精品视频一区二区三区 | 精品一二三区 | 91久久久久久 | 91免费视频观看 | 欧美精三区欧美精三区 | 日韩一区二区三区四区五区六区 | 欧美国产在线视频 | 在线看的av网站 | 男女免费视频网站 | 99视频精品在线 | 二区在线视频 | 久久久久久久成人 | 亚洲综合精品 | 欧美在线观看一区二区 | 国产视频网 | 久久国产精品-国产精品 | 国产a电影 |