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