msdn定義:擴充套件方法使您能夠向現有型別「新增」方法,而無需建立新的派生型別、重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。對於用 c# 和 visual basic 編寫的客戶端**,呼叫擴充套件方法與呼叫在型別中實際定義的方法之間沒有明顯的差異。
下面的示例演示為 system..::.string 類定義的乙個擴充套件方法。請注意,它是在非巢狀、非泛型靜態類內部定義的:
namespace extensionmethods可使用以下 using 指令將 wordcount 擴充套件方法放入範圍中:, stringsplitoptions.removeemptyentries).length;
}}
}
using extensionmethods;而且,可以在應用程式中使用以下語法對該擴充套件方法進行呼叫:
string s = "hello extension methods";在**中,可以使用例項方法語法呼叫該擴充套件方法。但是,編譯器生成的中間語言 (il) 會將**轉換為對靜態方法的呼叫。因此,並未真正違反封裝原則。實際上,擴充套件方法無法訪問它們所擴充套件的型別中的私有變數。int i = s.wordcount();
51cto **c#擴充套件方法:
C 擴充套件方法
c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...
C 擴充套件方法
c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...
C 擴充套件方法
使用 net 3.0之後,我一直都覺得有種方法很奇怪,這種方法在一般的方法前面多了乙個藍色的向下箭頭。這種方法其實是擴充套件方法,這種擴充套件方法不需要去修改原類。class program public static class extendfunction 例子中我定義了乙個擴充套件方法,這個方...