C 中擴充套件方法

2022-04-03 21:15:23 字數 1799 閱讀 8602

什麼是擴充套件方法?

擴充套件方法顧名思義,就是允許向現有的「型別」新增方法,而無需建立派生類、重新編譯或以其他方式修改原來型別。

擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。

擴充套件方法和例項方法有何區別?

通常只有在不得已(例如:不能修改原來的型別)的情況下才實現擴充套件方法,如果擴充套件方法和型別中定義的例項方法相同,則擴充套件方法不會被呼叫,因為例項方法的優先順序高於擴充套件方法的優先順序。。

已用到的擴充套件方法:

最常見的擴充套件方法是linq標準查詢運算子,它將查詢功能新增到現有的system.collections.ienumerable和system.collection.generic.ienumerable型別。若要使用標準查詢運算子,請先使用using system.linq指令將它們置於範圍內。然後,任何實現了ienumerable的型別看起來都具有groupby,order等例項方法。

class

extensionmethods2

;

var result = ints.orderby(g =>g);

foreach (var i in

result)

} }//

output: 10 15 21 26 39 45

如何增加乙個擴充套件方法?

一、定義乙個測試型別,其中包含乙個例項方法,如下:  

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

demo_extensionmethod2}}

view code

二、定義乙個擴充套件型別,其中包含乙個擴充套件方法,以後如需新增擴充套件方法,在該類中新增方法放即可,主要要定義為static型別,如下:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

demo_extensionmethod2.extensionmethods}}

view code

三、使用時,切記要新增對擴充套件方法的引用,否則編譯不過,如下:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using

demo_extensionmethod2.extensionmethods;

namespace

demo_extensionmethod2}}

view code

參考:

C 中的擴充套件方法

c 中的擴充套件方法用來為現有型別新增方法,以擴充套件現有的型別,這些型別可以是基本的資料型別 如int string等 也可以是自己定義的型別。擴充套件方法是通過指定關鍵字this修飾方法的第乙個引數而宣告的。擴充套件方法只可以宣告在靜態類中。以下為擴充套件基本型別string public st...

C 中的擴充套件方法

擴充套件方法的目的就是向乙個現有型別中新增方法,現有型別可以是已存在的型別,比如int,string等資料型別,也可以是我們自定義的資料型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。某個已經存在資料型別,該型別下的方法無法滿足我們的需求,這個時候就需要我們自己...

C 中擴充套件方法應用

擴充套件方法是c 3.0 中新增特性,可在不修改源類 情況,通過add file 模式對源 功能擴充套件。擴充套件方法要求如下 a.擴充套件方法需包含在 static 修飾類中.b.擴充套件實現需是靜態形式。c.擴充套件方法第乙個引數 字首為 this 表示需要擴充套件類物件,從第二個引數開始,為擴...