C#3.0新體驗(二)

來源:互聯網
上載者:User

前言:

學習除了要堅持不懈,還需要有好的方法!總結整理自己學習 的資料能使得所學的內容條理清晰,尋找回顧也很方便!俗話說的好:“ 好記性不如爛筆頭”;以前很多知識都是看過後,過一段時間就忘記,時 間花下去了,但效果甚微;看的多,但雜而不精;這些都是沒有做筆記,沒有深 入學習而導致的時間與精力的浪費,因此每個研究課題,都要好好整理資料,做 一個系列的研究!

三.擴充方法 (續接上一編)

擴充方法定義如 下:

public static class Extensions{
    public static void Foo(this string s) {
        …
     }
}
使用:
    String s=“Hello,World”;
    s.Foo();

我們以 前會對一些參數、對象進行某些處理,而寫一些獨立方法來封裝這些處理語句; 這些方法為了方便重用,可能會寫在一些公用類裡供大家調用,例如:

定義一個公用方法計算每天有多少分鐘,
public class PublicCenter
{
    //傳入參數為天數
    public long GetDaysMin(int pDays)
    {
        return pDays * 24 * 60;
    }
}
外部使用調用:
int days = 3;
PublicCenter pCenter = new PublicCenter();
int minutes = pCenter.GetDaysMin(days);

我想大家對上面這段代 碼的使用都非常熟悉,以前這樣處理的情況非常的多!現在我們看看用擴充方法 來處理會是怎麼樣;

定義一個靜態類的靜態方法計算每天有多少 分鐘(注意必須是靜態)
public staticclass PublicCenter
{
    //傳入參數為天數(注意this關鍵字必不可少)
     public staticlong GetDaysMin( this int pDays)
    {
         return pDays * 24 * 60;
    }
}
外部使 用調用:(注意靜態類必須同在一個命名空間,或添加引用,這個大家應該也知 道的(囉嗦))
int days = 3;
//當我們在所以int類型的變數後按 下".",就會智能提示出這些自己寫的擴充方法GetDaysMin()。
int minutes = days.GetDaysMin()

大家可以看出擴充方法的 本質為將執行個體方法調用在編譯期改變為靜態類中的靜態方法調用。

MSDN 中對擴充方法的定義是:擴充方法使您能夠向現有類型“添加”方法 ,而無需建立新的衍生類別型、重新編譯或以其他方式修改原始類型。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.