有許多方法擴充套件類。如果有類的源**,繼承就是給物件新增給你的好方法。但如果沒有源**,該怎麼辦?此時可以使用擴充套件方法,擴充套件方法是靜態方法,是類的一部分,但實際上沒有放在類的源**中。
定義和呼叫擴充套件方法步驟:
1、定義乙個靜態類以包含擴充套件方法。該類必須對客戶端**可見。有關可訪問性規則的更多資訊,請參見訪問修飾符。
2、將該擴充套件方法實現為靜態方法,並使其至少具有與包含類相同的可見性。
3、該方法的第乙個引數指定方法所操作的型別;該引數必須以 this 修飾符開頭。
4、在呼叫**中,新增一條 using 指令以指定包含擴充套件方法類的命名空間。
5、按照與呼叫型別上的例項方法一樣的方式呼叫擴充套件方法。
請注意,第乙個引數不是由呼叫**指定的,因為它表示正應用運算子的型別,並且編譯器已經知道物件的型別。您只需通過 n 為這兩個形參提供實參。
下面的示例在 myextensions.stringextension 類中實現了乙個名為 wordcount 的擴充套件方法。該方法對 string類進行操作,而該類被指定為第乙個方法引數。myextensions 命名空間被匯入到應用程式命名空間中,並且該方法是在 main 方法內呼叫的。
using system.linq;
using system.text;
using system;
namespace customextensions
, stringsplitoptions.removeemptyentries).length;}}
}namespace extension_methods_******
", i);}}
}
C 3 0 新特性學習筆記 4 擴充套件方法
擴充套件方法。相信大家都已經聽說過或已經用過這個新特性,這個也是我所喜歡的新特性之一.當我們需要對已有類的功能進行擴充套件時,我們通常會想到繼承,繼承已有類,然後為其加入新的行為。而c 3.0中加入的擴充套件方法特性,則提供了另一種實現功能擴充套件的方式,我們可以在不使用繼承的前提下實現對已有類本身...
C 學習筆記(八) 擴充套件方法
還記得第一次使用dotween時,發現緩動方法竟然是可以直接用transform物件中呼叫到,當時就被震撼到了 那是還是c 小白乙隻 好了不多說了,今天來學習一下c 的這個特性 擴充套件方法。擴充套件方法使你能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。這樣我...
C 學習 擴充套件方法
對於乙個已有類來說,其方法應該是固定的,但有些時候我們需要給其新增新的方法來實現一些新功能。比如說,將double陣列以字串形式輸出,double.tostring 得到的結果是system.double,而不是我們想要的。那麼,如何實現這種效果呢?單獨寫乙個方法也是可以的,如 public str...