C# 擴(kuò)展方法詳解
先來做一下MCSD試題;
答案是C;
題目是問怎么定義擴(kuò)展方法;
下面來看一下擴(kuò)展方法;
擴(kuò)展方法是C# 3.0 中新增特性,可在不修改源類代碼情況,通過ADD File 模式對(duì)源代碼功能擴(kuò)展。
擴(kuò)展方法要求如下:
a.擴(kuò)展方法需包含在 static 修飾類中.
b.擴(kuò)展實(shí)現(xiàn)需是靜態(tài)形式。
c.擴(kuò)展方法第一個(gè)參數(shù) 前綴為 this , 表示需要擴(kuò)展類對(duì)象,從第二個(gè)參數(shù)開始,為擴(kuò)展方法參數(shù)列表。
MSDN說:
“擴(kuò)展方法使您能夠向現(xiàn)有類型“添加”方法,而無需創(chuàng)建新的派生類型、重新編譯或以其他方式修改原始類型。
也就是你可以對(duì)String,Int,DataRow,DataTable等這些類型的基礎(chǔ)上增加一個(gè)或多個(gè)方法,使用時(shí)不需要去修改或編譯類型本身的代碼。
在同一命名空間下可用,使用起來感覺和.Net framework定義的方法一樣;增加編程的便利性;
看一個(gè)簡(jiǎn)單示例;
在靜態(tài)類DateHelper中定義了對(duì)DateTime類型的一個(gè)擴(kuò)展方法DateToString;
now1是DateTime類型,當(dāng)敲入.之后,DateToString方法也隨同netframework提供的方法一起列出;
運(yùn)行如下;
假如類非靜態(tài),使用 (this 類型 參數(shù)名) 來定義擴(kuò)展方法,則提示 擴(kuò)展方法只能在靜態(tài)類內(nèi)定義;
上面工具是精簡(jiǎn)版的開發(fā)工具sharpdevelop;
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C#基于簡(jiǎn)單工廠模式實(shí)現(xiàn)的計(jì)算器功能示例
這篇文章主要介紹了C#基于簡(jiǎn)單工廠模式實(shí)現(xiàn)的計(jì)算器功能,結(jié)合簡(jiǎn)單實(shí)例形式分析了C#使用工廠模式的數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-11-11C#使用foreach語句簡(jiǎn)單遍歷數(shù)組的方法
這篇文章主要介紹了C#使用foreach語句簡(jiǎn)單遍歷數(shù)組的方法,涉及C#中foreach語句的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04VS.net VSS時(shí),編譯報(bào)錯(cuò):未能向文件“.csproj.FileListAbsolute.txt”寫入命令行 對(duì)路
在VSS上把項(xiàng)目的Bin和Obj目錄刪除,然后重新取出項(xiàng)目,編譯成功。2009-06-06C#實(shí)現(xiàn)密碼驗(yàn)證與輸錯(cuò)密碼賬戶鎖定
這篇文章介紹了C#實(shí)現(xiàn)密碼驗(yàn)證與輸錯(cuò)密碼賬戶鎖定的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04C#實(shí)現(xiàn)程序等待延遲執(zhí)行的方法
這篇文章主要介紹了C#實(shí)現(xiàn)程序等待延遲執(zhí)行的方法,涉及C#動(dòng)態(tài)鏈接庫的使用及延遲的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-09-09