真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#中擴(kuò)展方法的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下C#中擴(kuò)展方法的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、揚(yáng)中ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的揚(yáng)中網(wǎng)站制作公司

擴(kuò)展方法

擴(kuò)展方法使您能夠向現(xiàn)有類型“添加”方法,而無(wú)需創(chuàng)建新的派生類型、重新編譯或以其他方式修改原始類型。擴(kuò)展方法是一種特殊的靜態(tài)方法,但可以像擴(kuò)展類型上的實(shí)例方法一樣進(jìn)行調(diào)用。對(duì)于用 C# 和 Visual Basic 編寫的客戶端代碼,調(diào)用擴(kuò)展方法與調(diào)用在類型中實(shí)際定義的方法之間沒(méi)有明顯的差異。

如果我們有這么一個(gè)需求,將一個(gè)字符串的第一個(gè)字符轉(zhuǎn)化為大寫,第二個(gè)字符到第n個(gè)字符轉(zhuǎn)化為小寫,其他的不變,那么我們?cè)撊绾螌?shí)現(xiàn)呢?

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

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
  {
    //抽象出來(lái)的將字符串第一個(gè)字符大寫,從第一個(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));
    }
  }
}

C#中擴(kuò)展方法的示例分析

使用擴(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);
    }
  }
}

C#中擴(kuò)展方法的示例分析

通過(guò)上面兩種方法的比較:

1.代碼在訪問(wèn)ToPascal這樣的靜態(tài)方法時(shí)更為便捷。用起來(lái)就像是被擴(kuò)展類型確實(shí)具有該實(shí)例方法一樣。
   2.擴(kuò)展方法不改變被擴(kuò)展類的代碼,不用重新編譯、修改、派生被擴(kuò)展類

定義擴(kuò)展方法

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

請(qǐng)注意,第一個(gè)參數(shù)不是由調(diào)用代碼指定的,因?yàn)樗硎菊龖?yīng)用運(yùn)算符的類型,并且編譯器已經(jīng)知道對(duì)象的類型。 您只需通過(guò) n 為這兩個(gè)形參提供實(shí)參。

注意事項(xiàng):

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

以上是“C#中擴(kuò)展方法的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前名稱:C#中擴(kuò)展方法的示例分析-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/disocc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部