程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#3.0新體驗(二)(1)

C#3.0新體驗(二)(1)

編輯:關於C語言

前言:

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

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

擴展方法定義如 下:

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 中對擴展方法的定義是:擴展方法使您能夠向現有類型“添加”方法 ,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved