詳解Visual C# 2010幾大新特征
原創(chuàng)【51CTO經(jīng)典譯文】一、簡(jiǎn)介
本短文將向您展示Visual C# 2010中新推出的一些功能及增強(qiáng)性特征。通過(guò)這些新功能的協(xié)同工作有利于改進(jìn)微軟Office可編程性,增加您的代碼管理功能,并為測(cè)試驅(qū)動(dòng)開(kāi)發(fā)提供支持,等等。有關(guān)更多信息,請(qǐng)參見(jiàn)文章《Visual Studio 2010產(chǎn)品亮點(diǎn)展示》。下面,我們來(lái)作逐一介紹。51CTO .NET頻道向您推薦《專家揭秘Visual Basic 2010的十大新特性》,以便于您對(duì)整個(gè)Visual Studio 2010及.NET 4有更全面的了解。
二、C# 4.0語(yǔ)言及編譯器新特征
(一)動(dòng)態(tài)支持
Visual C# 2010引入了一種新的數(shù)據(jù)類型dynamic,從而針對(duì)動(dòng)態(tài)類型的后期綁定提供了支持。這種新數(shù)據(jù)類型的引入對(duì)眾多新的場(chǎng)所提供了支持,包括對(duì)Office自動(dòng)化這樣的API、如IronPython庫(kù)這樣的動(dòng)態(tài)API以及對(duì)HTML文檔對(duì)象模型(DOM)等眾多類型的COM API的簡(jiǎn)化訪問(wèn)。有關(guān)詳細(xì)信息,請(qǐng)參閱《使用動(dòng)態(tài)類型(C#編程指南)》和《dynamic(C#參考)》。
(二)Office編程
在訪問(wèn)COM接口(包括Office自動(dòng)化相關(guān)API)方面,Visual C#2010進(jìn)一步增強(qiáng)了相應(yīng)的支持,這主要是由于新增加了命名和可選參數(shù),動(dòng)態(tài)類型,索引屬性以及可選的ref修飾符,等等。
有關(guān)Visual C#2010 Office編程的詳細(xì)信息,請(qǐng)參閱《如何:在COM互操作中使用索引屬性(C#編程指南)》和《如何:使用Visual C# 2010訪問(wèn)Office互操作對(duì)象(C#編程指南)》等文章。
(三)類型等價(jià)支持
現(xiàn)在,您可以部署一個(gè)應(yīng)用程序,使之嵌入類型信息,而不是從PIA(主互操作程序集)中導(dǎo)入類型信息。借助于內(nèi)嵌的類型信息,您的應(yīng)用程序可以在運(yùn)行時(shí)使用某種數(shù)據(jù)類型而無(wú)需要求使用對(duì)運(yùn)行時(shí)程序集的引用。如果發(fā)布了運(yùn)行時(shí)程序集的各種版本的話,那么,包含嵌入式類型信息的應(yīng)用程序就可以直接使用這各種版本的程序集工作,而不必重新進(jìn)行編譯。有關(guān)的更多信息,請(qǐng)參見(jiàn)《/link(C#編譯器選項(xiàng))》。有關(guān)示例,請(qǐng)參見(jiàn)《演練:從托管程序集中嵌入類型(C#和Visual Basic)》。
(四)協(xié)變(Covariant)和逆變(Contravariant)
協(xié)變功能能夠支持你使用比泛型參數(shù)更具體的類型,而逆變(contravariance)有助于使用更一般的類型。協(xié)變和逆變新概念的引入可以使實(shí)現(xiàn)變體接口的類進(jìn)行隱式轉(zhuǎn)換,從而為使用變體委托類型的方法簽名匹配提供更多的靈活性。你可以使用in和out關(guān)鍵字來(lái)建立變體類型的接口和委托。新的.NET框架還針對(duì)幾種現(xiàn)有的泛型接口和委托引進(jìn)了變體支持。這些現(xiàn)有的泛型接口和委托包括IEnumerable<(Of <(T>)>)接口以及Func<(Of <(TResult>)>)和Action<(Of <(T>)>)委托。有關(guān)更多的信息,請(qǐng)參閱《C#和Visual Basic中的協(xié)變和逆變功能》。
(五)新的命令行選項(xiàng)
新引入的/langversion命令行選項(xiàng)可以使編譯器只接受那些在指定版本的C#中有效的語(yǔ)法。
另一個(gè)新引入的/appconfig編譯器選項(xiàng)能夠使C#應(yīng)用程序向編譯器指定程序集的應(yīng)用程序配置文件所在的位置。
三、Visual C#集成開(kāi)發(fā)環(huán)境
以下各小節(jié)中將描述新的Visual Studio集成開(kāi)發(fā)環(huán)境(IDE)中的一些增強(qiáng)支持。
(一)訪問(wèn)層次
訪問(wèn)層次能夠通過(guò)顯示如下內(nèi)容實(shí)現(xiàn)在你的整個(gè)代碼中進(jìn)行導(dǎo)航。
展示代碼中對(duì)某個(gè)方法,屬性或者構(gòu)造函數(shù)的所有調(diào)用;同時(shí),一并給出在一個(gè)給定的方法、屬性或者構(gòu)造函數(shù)內(nèi)部對(duì)于所有其他方法,屬性或者構(gòu)造函數(shù)的調(diào)用情況的層次展示。
一個(gè)接口成員的所有實(shí)現(xiàn)情況。
某個(gè)虛成員或抽象成員的所有重載情況。
訪問(wèn)層次能夠使您更好地了解代碼流向情況,從而更有利于評(píng)價(jià)代碼變化帶來(lái)的影響。有關(guān)更多信息,請(qǐng)參閱《訪問(wèn)層次》。
(二)導(dǎo)航支持
您可以使用導(dǎo)航(Navigate To)功能在源代碼中搜索一個(gè)符號(hào)或文件。您也可以通過(guò)使用駝峰式大小寫語(yǔ)法和下劃線字符把符號(hào)分解成關(guān)鍵字的方式來(lái)搜索包含在符號(hào)中的關(guān)鍵字。
更多的信息,請(qǐng)參考文章《如何:搜索對(duì)象,定義和引用(符號(hào))》。
(三)高亮引用
現(xiàn)在,當(dāng)你單擊源代碼中的一個(gè)符號(hào)時(shí),當(dāng)前文檔中這個(gè)符號(hào)對(duì)應(yīng)的所有實(shí)例都會(huì)高亮顯示。為了移動(dòng)到下一個(gè)或上一個(gè)高亮顯示的符號(hào),你可以在Visual Studio 2010中使用Ctrl+Shift+↑組合鍵或Ctrl+Shift+↓組合鍵。更多的相關(guān)信息,請(qǐng)參考《如何使用高亮引用》。
(四)Generate From Usage特性
Generate From Usage特性能夠使您在定義類和成員之前使用它們。在代碼中沒(méi)有留下當(dāng)前位置的情況下,你可以為一個(gè)你想使用但尚未定義的類,構(gòu)造器函數(shù),方法,屬性,字段乃至枚舉類型創(chuàng)建存根,從而最大限度地減少中斷您的工作流程的可能性。
Generate From Usage特性支持測(cè)試優(yōu)先型軟件開(kāi)發(fā)這樣的編程風(fēng)格。更多的相關(guān)信息,請(qǐng)參考《Generate From Usage》和《演練:使用Generate From Usage特性支持測(cè)試優(yōu)先型開(kāi)發(fā)》。
(五)智能感知提示模式
在新的Visual C# 2010中,智能感知現(xiàn)在提供了兩種選擇以支持智能感知的語(yǔ)句自動(dòng)完成功能:完成模式和建議模式。當(dāng)在定義類及其成員之前使用它們時(shí)使用建議模式。有關(guān)這方面更多的信息,請(qǐng)參考這里。
(六)現(xiàn)場(chǎng)語(yǔ)義錯(cuò)誤提示
現(xiàn)場(chǎng)語(yǔ)義錯(cuò)誤提示(Live Semantic Errors)功能在Visual C#2010中得到了增強(qiáng)。系統(tǒng)使用波浪型下劃線來(lái)指示你輸入的錯(cuò)誤和警告信息。如今,該功能已擴(kuò)展到方法定義以外的那些內(nèi)容,如返回類型,參數(shù)類型以及方法聲明的默認(rèn)值,等等。
四、示例應(yīng)用程序
Visual C#2010提供了一組新的示例應(yīng)用程序?qū)⑾蚰故救绾卫蒙鲜鲂碌腃#功能簡(jiǎn)化Office編程,訪問(wèn)IronPython庫(kù),創(chuàng)建動(dòng)態(tài)對(duì)象,開(kāi)發(fā)和使用通用的協(xié)變(covariant)和反變(contravariant)泛型代理,等等。有關(guān)Visual C#語(yǔ)言示例的更多信息及如何訪問(wèn)它們,請(qǐng)參考《Visual C#示例應(yīng)用程序》一文。
【編輯推薦】