簡(jiǎn)單介紹C# 中的擴(kuò)展方法
擴(kuò)展方法是C#3.0引入的新特性,使用它,可以在不修改某一類(lèi)的代碼的情況下,實(shí)現(xiàn)該類(lèi)方法的擴(kuò)展。
為一個(gè)類(lèi)添加擴(kuò)展方法,需要三個(gè)要素:
1.擴(kuò)展方法所在的類(lèi)為靜態(tài)類(lèi)
2.擴(kuò)展方法本身要為靜態(tài)方法
3.擴(kuò)展方法的第一個(gè)參數(shù)要用關(guān)鍵字this,指向要擴(kuò)展的類(lèi)
下面請(qǐng)看一個(gè)實(shí)例:
//靜態(tài)類(lèi)
public static class TestExtensionM
{
//靜態(tài)方法
public static int ExtensionInt(this int s) //this關(guān)鍵字
{
return s + s;
}
}
這個(gè)擴(kuò)展方法是服務(wù)于int類(lèi)型的,返回它自己的2倍;
使用方法也很簡(jiǎn)單:
int a = 9; a = a.ExtensionInt(); Debug.WriteLine(a);

a為9,調(diào)用擴(kuò)展方法以后,也看到了正確返回結(jié)果18
實(shí)際上也可以用: int.Add(a)的形式使用,但顯然上圖所示的更加簡(jiǎn)單易用。
擴(kuò)展方法,也可以傳入?yún)?shù):
//靜態(tài)類(lèi)
public static class TestExtensionM
{
//靜態(tài)方法
public static int ExtensionInt(this int s,int a) //this關(guān)鍵字
{
return s + a;
}
}
使用的時(shí)候,傳入對(duì)應(yīng)的參數(shù)即可
int a = 9; a = a.ExtensionInt(6); Debug.WriteLine(a);

這種靈活的方式,可以讓我們的開(kāi)發(fā)更便捷,但是不要濫用擴(kuò)展方法,當(dāng)擴(kuò)展方法與類(lèi)原始的方法重名時(shí),原始方法的優(yōu)先級(jí)高于擴(kuò)展方法,并且對(duì)于系統(tǒng)類(lèi),不要隨便添加擴(kuò)展方法。
以上就是C# 中的擴(kuò)展方法簡(jiǎn)介的詳細(xì)內(nèi)容,更多關(guān)于c# 擴(kuò)展方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C# SDK實(shí)現(xiàn)百度云OCR的文字識(shí)別功能
這篇文章主要為大家詳細(xì)介紹了C# SDK實(shí)現(xiàn)百度云OCR的文字識(shí)別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
基于C#開(kāi)發(fā)中的那些編碼問(wèn)題(詳談)
下面小編就為大家分享一篇基于C#開(kāi)發(fā)中的那些編碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
C#使用默認(rèn)瀏覽器打開(kāi)網(wǎng)頁(yè)的方法
這篇文章主要介紹了C#使用默認(rèn)瀏覽器打開(kāi)網(wǎng)頁(yè)的方法,涉及C#操作瀏覽器屬性的相關(guān)技巧,需要的朋友可以參考下2015-06-06
C#驗(yàn)證碼識(shí)別類(lèi)完整實(shí)例
這篇文章主要介紹了C#驗(yàn)證碼識(shí)別類(lèi),以一個(gè)完整實(shí)例形式較為詳細(xì)的分析了驗(yàn)證碼圖片處理所涉及的各種常用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
winform創(chuàng)建不規(guī)則窗體的方法
這篇文章主要介紹了winform創(chuàng)建不規(guī)則窗體的方法,涉及C#窗體創(chuàng)建的相關(guān)參數(shù)設(shè)置技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-09-09

