閑扯Visual Studio 2010 CTP
#t#C#作為Visual Studio的當(dāng)家花旦,每次Visual Studio和.NET Framework的升級都會給她帶來很多激動人心的特性,讓這位微軟力捧的明星更加耀眼奪目。這個Visual Studio 2010 CTP中就包含了C# 4.0的動態(tài)查詢(Dynamic Lookup)、命名參數(shù)/可選參數(shù)、COM互操作簡化等等新特性。
除了語言本身的升級外,在Visual Studio的IDE上微軟也下了功夫,提供了很多實用的功能,來幫助程序員們高效地開發(fā)越來越復(fù)雜的應(yīng)用。接下來,我們從語言本身和IDE兩個方面,來介紹Visual Studio 2010 CTP所帶來的針對托管語言的新特性。
每次Visual Studio的升級,總是伴隨著大量新的語言特性的引入和IDE的更加高效智能。這些新特性的引入,令無數(shù)跟隨Microsoft的程序員“痛并快樂著”,快樂的是新特性的引入,無疑會提高開發(fā)效率,痛苦的是又要開始學(xué)習(xí)新技術(shù)了,但是不管怎樣,這就是“程序人生”。文章的意義,就是想讓大家的快樂多一點點,痛苦少一點點,人生就更加美好了。話不多說,開始我們的新歷程吧。
在Visual Studio 2010 CTP中,Visual Basic 10、C# 4.0以及IDE所引入的新特性主要包括:
Visual Basic 10
特性 |
描述 |
自動實現(xiàn)屬性
(Auto-Implemented Properties) |
在Visual Basic 10中,我們可以簡單地通過一行就完成標(biāo)準(zhǔn)屬性的定義。自動實現(xiàn)屬性和 C# 中的相同概念是完全一致的。 |
集合初始值設(shè)定
(Collection Initializers) |
Visual Basic引入了新的關(guān)鍵字From來簡化集合的初始值設(shè)定,這將大大簡化一些繁瑣的初始化工作。 |
隱式換行
(Implicit Line Continuations) |
我們都知道,在Visual Basic中是使用換行符”_”顯式地進行換行的。現(xiàn)在,在很多情況下我們可以不使用換行符”_”而實現(xiàn)隱式換行。 |
No-PIA 部署
(No-PIA) |
我們在編寫基于 Microsoft Office 的應(yīng)用程序時,往往需要部署一堆 VSTO 的 Runtime 程序集,但有時候我們編寫一些應(yīng)用程序時,僅僅調(diào)用了這些 Interop 程序集中很少的功能。例如僅僅保存或打開了一個 Excel 表格等,如果每次部署這樣的應(yīng)用程序都需要分發(fā)整個 PIA(Primary Interop Assemblies)的話就顯得多此一舉。在新的 Visual Basic 中,可以將一個 PIA 程序集的屬性設(shè)置為 Embedded 來將其用到的對象引用內(nèi)嵌到我們自己的程序集中,這樣就避免了分發(fā)整個 VSTO Runtime 的臃腫部署方式。 |
內(nèi)聯(lián) Lambda 表達式
(Inline Lambda Expressions) |
在Visual Basic 9中我們使用Lambda表達式 時,無論是否真正需要,都要一個返回值。在Visual Basic 10中,返回值已經(jīng)不再是必須的,這就更C#保持了一致。
另外,在Visual Basic 10中, Lambda 表達式可以包含多條語句以處理比較復(fù)雜的邏輯,而無需像以前那樣把邏輯處理交給其他的函數(shù)來處理。 |
C# 4.0
特性 |
描述 |
動態(tài)類型
(Dynamic Types) |
C# 4.0引入了對動態(tài)類型的遲綁定(late binding) ,當(dāng)你得到一個動態(tài)類型的對象時,不管他是來自COM還是IronPython、HTML DOM還是反射,只需要對其進行操作即可,運行時會幫你指出針對特定的對象,這些操作的具體意義。這將帶來很多新的應(yīng)用,例如簡化對Silverlight應(yīng)用程序中HTML DOM對象的訪問。 |
無PIA特性
(No-PIA) |
主互操作程序集(Primary Interop Assembly)是從COM接口生成的大型.NET程序集,用于協(xié)助完成強類型的互操作。無PIA特性允許你在設(shè)計時使用PIA,而無需在運行時使用它們。C#編譯器會將程序中實際用到的PIA中的一小部分直接編譯到程序集中,在運行時無需加載PIA,這樣可以簡化程序的部署,同時也可以減少內(nèi)存的使用。 |
Office開發(fā)
(Office Programmability) |
C# 4.0支持命名參數(shù)和可選參數(shù),這將大大簡化COM互操作的語法,使得Office開發(fā)更加簡單。 |
Visual Studio IDE
特性 |
描述 |
調(diào)用樹
(Call Hierarchy) |
在Visual Studio 2010 CTP中,我們可以從解決方案中的任何一個成員函數(shù)直接跳轉(zhuǎn)到調(diào)用它的函數(shù)或者它所調(diào)用的函數(shù)。這極大地方便了我們理解程序的執(zhí)行流程。 |
即用即生成
(Generate from Usage) |
新的代碼編輯器將根據(jù)用戶的使用,在后臺自動地生成新的類型和成員。 |
高亮引用
(Highlight Reference) |
在新的代碼編輯器中,我們可以將光標(biāo)停留在標(biāo)識符上,代碼編輯器將高亮所有對應(yīng)的標(biāo)識符引用。使用Ctrl + Shift + Up和Ctrl + Shift + Down組合鍵,我們可以在標(biāo)識符的多個引用之間跳轉(zhuǎn)。這個新特性在我們查找某些對象的使用情況時非常有用。 |
快速查找
(Quick Search) |
Visual Studio 2010引入了一個簡化后的快速查找對話框,在這個快速查找對話框中,我們可以搜索解決方案中的文件,符號,注釋等等。使用Ctrl+”,”快捷鍵可以調(diào)出這個快速查找對話框。 |
上面關(guān)于托管語言和IDE新特性的介紹,都非常概括而抽象,為了讓大家有一個直觀的感受,下面我們以一些實際的例子,來為大家展示這些新特性。