C 擴充套件方法

2021-09-26 07:47:47 字數 1116 閱讀 1665

通常我們都在使用.net自帶類庫或者第三方類庫,有時候我們無法檢視他們的**,但是我們需要一些新的功能,這個時候我們就可以自己去定義一些自己想要的方法,就是擴充套件方法。

擴充套件方法要求:

1.必須是定義在靜態類中的靜態方法;

2.第乙個引數的型別是要擴充套件的型別;

3.第乙個引數需要新增this關鍵字以標識其為擴充套件方法。

說明:第3步中必須要有this關鍵字標識其為擴充套件方法,當我們想使用該擴充套件方法時,必須是乙個物件來呼叫該方法,那麼該物件必須是屬於this關鍵字後引用的物件。

demo示例:

1.最簡單的擴充套件方法,string類擴充套件乙個固定返回資料的擴充套件方法:

public static class mystring

}public static void main(string args)

2.使用自定義類為擴充套件型別,為其新增乙個擴充套件方法:

//自定義部落格類

public class blog

}//偷懶一點,直接在mystring類中加上乙個返回部落格名的擴充套件方法

public static class mystring

}//此時我們想使用「返回部落格名的擴充套件方法」,應該先有乙個擴充套件屬性blog的物件,才可以去呼叫

public static void main(string args)

3.在lambda表示式中對集合有乙個where方法,再此我們針對其寫乙個mywhere擴充套件方法:

//依然寫在mystring類中了

public static class mystring

}return newlist;}}

public static void main(string args)

;listnewlist = list.mywhere(a => a > 5);

}

到這裡結束,不足之處,望指出。

原始碼:

C 擴充套件方法

c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...

C 擴充套件方法

c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...

C 擴充套件方法

使用 net 3.0之後,我一直都覺得有種方法很奇怪,這種方法在一般的方法前面多了乙個藍色的向下箭頭。這種方法其實是擴充套件方法,這種擴充套件方法不需要去修改原類。class program public static class extendfunction 例子中我定義了乙個擴充套件方法,這個方...