c#3.0新特性:擴(kuò)展方法初探

c#3.0新特性:擴(kuò)展方法初探

ID:15380508

大小:73.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-08-03

c#3.0新特性:擴(kuò)展方法初探_第1頁(yè)
c#3.0新特性:擴(kuò)展方法初探_第2頁(yè)
c#3.0新特性:擴(kuò)展方法初探_第3頁(yè)
c#3.0新特性:擴(kuò)展方法初探_第4頁(yè)
c#3.0新特性:擴(kuò)展方法初探_第5頁(yè)
資源描述:

《c#3.0新特性:擴(kuò)展方法初探》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、歡迎訪問(wèn)中文C#技術(shù)站!返回首頁(yè)FreeBlogwithdomains!Domainsaslowas$1.19/ea,freewebsiteandmoreGlobe7-Free!CallFree,ChatFreeandWatchTVforFree!Globe7-FreeDownload!Phone+Chat+Radio+TVFree!DownloadNow!BiztalkServerResourcesBiztalkServerCommunitySitewithFreeSamples,Labs,andVideos返回本類(lèi)>>C#3.0新特性:擴(kuò)展方法初探C

2、#3.0新特性:擴(kuò)展方法初探www.chinacs.net??2006-03-26??中文C#技術(shù)站  C#3.0中一個(gè)激動(dòng)人心的特性就是擴(kuò)展方法:你可以使用實(shí)例方法的語(yǔ)法來(lái)調(diào)用靜態(tài)方法。本文仔細(xì)闡述了這一新特性并且給出了幾個(gè)相應(yīng)的例子。  聲明擴(kuò)展方法  擴(kuò)展方法的行為和靜態(tài)方法是非常類(lèi)似的,你只能在靜態(tài)類(lèi)中聲明它們。為聲明一個(gè)擴(kuò)展方法,你需要給該方法的第一個(gè)參數(shù)指定this關(guān)鍵字,如下例://Program.cspublicstaticclassEMClass{ publicstaticintToInt32Ext(thisstrings) {  re

3、turnInt32.Parse(s); } publicstaticintToInt32Static(strings) {  returnInt32.Parse(s); }}classProgram{ staticvoidMain(string[]args) {  strings="9";  inti=s.ToInt32Ext();//LINEA  Console.WriteLine(i);  intj=EMClass.ToInt32Static(s);//LINEB  Console.WriteLine(j);  Console.ReadLine();

4、 }}  為編譯如上代碼,你需要安裝VisualStudio2005和LINQ的預(yù)覽版。如果你已經(jīng)安裝了VS2005,那么你將在VisualC#的LINQPreview里看到三個(gè)新的工程模板:LINQ命令行應(yīng)用程序,LINQ窗口程序和LINQ庫(kù)。如下操作編譯代碼:  1.打開(kāi)VS2005編輯器,創(chuàng)建一個(gè)新工程,在新建工程窗口中選擇LINQConsole作為工程模板。  2.將工程命名為ExtensionMethods,點(diǎn)擊Ok?! ?.將如上代碼鍵入編輯器?! ?.按下F5編譯工程并運(yùn)行?! ∪绻阒皇前惭b了.NET2.0,那么你可以運(yùn)行命令行編譯器:C

5、sc.exe/reference:"C:ProgramFilesLINQPreviewBinSystem.Data.DLINQ.dll"/reference:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727System.dll/reference:"C:ProgramFilesLINQPreviewBinSystem.Query.dll"/reference:"C:ProgramFilesLINQPreviewBinSystem.Xml.XLINQ.dll"/target:exeProg

6、ram.cs  就像你在如上代碼里所看到的那樣,擴(kuò)展方法(ToInt32Ext)和普通的靜態(tài)方法(ToInt32Static)的不同在于:  1.擴(kuò)展方法的第一個(gè)參數(shù)有一個(gè)this關(guān)鍵字,而靜態(tài)方法不會(huì)在它的參數(shù)聲明里有this關(guān)鍵字?! ?.當(dāng)使用擴(kuò)展方法的是哦戶,使用this關(guān)鍵字聲明的的參數(shù)沒(méi)有進(jìn)行傳遞。在上面的例子里,LineA就是一個(gè)使用擴(kuò)展方法ToInt32Ext的例子。不需要將參數(shù)傳遞給它。當(dāng)靜態(tài)方法在使用的時(shí)候,是不能忽略掉任何的參數(shù)的。所有的參數(shù)必須傳遞進(jìn)入函數(shù)。LineB就是一個(gè)例子?! ?.擴(kuò)展方法只能在靜態(tài)類(lèi)中定義。對(duì)于靜態(tài)方法,

7、這并不成為一個(gè)要求,因?yàn)殪o態(tài)方法可以在一個(gè)靜態(tài)類(lèi)或普通類(lèi)中存在?! ?.擴(kuò)展方法只能針對(duì)實(shí)例調(diào)用。  擴(kuò)展方法,盡管本質(zhì)上還是靜態(tài)的,但是只能針對(duì)實(shí)例調(diào)用。如果在一個(gè)類(lèi)中調(diào)用它們將會(huì)引發(fā)編譯錯(cuò)誤。調(diào)用它們的類(lèi)實(shí)例是由聲明中的第一個(gè)參數(shù)決定的,就是有關(guān)鍵字this修飾的那個(gè)?! ≡贗L內(nèi)部  如果你觀看IL里對(duì)以上代碼的分析結(jié)果,你將會(huì)看到如下圖的結(jié)果:  以下是IL對(duì)于擴(kuò)展方法ToInt32Ext的分析:.methodpublichidebysigstaticint32ToInt32Ext(strings)cilmanaged{ .custominsta

8、ncevoid[System.Query]System.Runtime .Com

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。