我一般理解一個(gè)知識點(diǎn)喜歡拆分去理解,所以對于擴(kuò)展方法的理解可以拆分為——首先它肯定是一個(gè)方法,然而方法又是對于一個(gè)類型而言的,所以擴(kuò)展方法可以理解為現(xiàn)有的類型(現(xiàn)有類型可以為自定義的類型和.Net 類庫中的類型)擴(kuò)展(添加)應(yīng)該附加到該類型中的方法。
大峪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!在沒有擴(kuò)展方法之前,如果我們想為一個(gè)已有類型自定義自己邏輯的方法時(shí),我們必須自定義一個(gè)新的類型來繼承已有類型的方式來添加方法,使用這種繼承方式來添加方法時(shí),我們必須自定義一個(gè)新的派生類型,如果基類有抽象方法還需要重新去實(shí)現(xiàn)抽象方法,這樣為了擴(kuò)展一個(gè)方法卻會導(dǎo)致因繼承而帶來的其他的開銷(指的是又要去自定義一個(gè)派生類,還要覆蓋基類的抽象方法等),所以使用繼承來為現(xiàn)有類型擴(kuò)展方法時(shí)就有點(diǎn)大才小用的感覺了,并且當(dāng)我們需要為值類型和密封類(不能被繼承的類)這些不能被繼承的類型擴(kuò)展方法時(shí),此時(shí)繼承就不能被我們所用了, 所以在C#3 中提出了用擴(kuò)展方法來實(shí)現(xiàn)為現(xiàn)有類型添加方法。使用擴(kuò)展方法來實(shí)現(xiàn)擴(kuò)展可以解決使用繼承中所帶來的所有的弊端
擴(kuò)展方法必須具備下面的規(guī)則:
它必須在一個(gè)非嵌套、非泛型的靜態(tài)類中
它至少要有一個(gè)參數(shù)
第一個(gè)參數(shù)必須加上this關(guān)鍵字作為前綴(第一個(gè)參數(shù)類型也稱為擴(kuò)展類型,即指方法對這個(gè)類型進(jìn)行擴(kuò)展)
第一個(gè)參數(shù)不能用其他任何修飾符(如不能使用ref out等修飾符)
第一個(gè)參數(shù)的類型不能是指針類型
示例:
創(chuàng)建一個(gè)類:
public class Methods
{
}
擴(kuò)展這個(gè)類:
public static class MethodsExtension
{
public static class MethodsExtension
{
public static void StringToInt(this Methods s,string y)
{
Console.WriteLine(Convert.ToInt32(y));
}
}
}
調(diào)用擴(kuò)展方法:
Methods m = new Methods();
m.StringToInt("1");
對string的擴(kuò)展:
public static class stringExtension
{
public static void StringToInt(this string s)
{
Console.WriteLine(Convert.ToInt32(s));
}
}
string a = "123";
a.StringToInt();
主要用在封閉類開的類和對系統(tǒng)類的擴(kuò)展
新聞標(biāo)題:擴(kuò)展方法的使用-創(chuàng)新互聯(lián)
文章出自:http://jinyejixie.com/article12/ccpigc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、電子商務(wù)、微信公眾號、營銷型網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容