VS 2010 和 .NET 4.0 系列之《VS 2010代碼智能提示的改進》篇
系列文章導航:
VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改進 》篇
VS 2010 和 .NET 4.0 系列之《干凈的Web.Config文件 》篇
VS 2010 和 .NET 4.0 系列之《起始項目模板》篇
VS 2010 和 .NET 4.0 系列之《多定向支持》篇
VS 2010 和 .NET 4.0 系列之《多顯示器支持》篇
VS 2010 和 .NET 4.0 系列之《代碼優化的Web開發Profile》篇
VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代碼片段支持》篇
VS 2010 和 .NET 4.0 系列之《自動啟動ASP.NET應用》篇
VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中實現URL導向》篇
VS 2010 和 .NET 4.0 系列之《在VS 2010中查詢和導航代碼》篇
VS 2010 和 .NET 4.0 系列之《VS 2010代碼智能提示的改進》篇
VS 2010 和 .NET 4.0 系列之《添加引用對話框的改進》篇
VS 2010 和 .NET 4.0 系列之《內置圖表控件》篇
在今天的博客中,我將討論一個VS 2010中對代碼智能提示(intellisense)的很小,但是非常棒的改進,就是更好地過濾類型和成員代碼完成的能力,這使你在編寫代碼時更容易找到和使用APIs。
VS 2008中的代碼智能提示
為幫助示范這個VS 2010中的智能提示的改進,讓我們先來在VS 2008中做一個簡單的例子,我們想要編寫一些代碼來啟用GridView控件的編輯場景:
我們也許會開始鍵入“GridView1.Edit”,調出智能提示來看一下該控件都有些什么Edit成員。在VS 2008中這么做的話,會調出智能提示下拉框,并在下拉框中將當前位置移到起始字母為“Edit”的成員處:
如果我們想要使用的方法/屬性/事件的起始字母為“Edit”的話,這當然很好,但如果我們正尋找的“Edit”成員的起始字母是別的詞的話(譬如,“RowEditing” 事件或 “SetEditRow()” 輔助方法),這幫不了我們。我們只能手工上下卷動尋找其他的Edit成員,或者調出對象瀏覽器或幫助系統來找到它們。
VS 2010中的代碼智能提示
現在讓我們在VS 2010中試一下同一個例子。當我們在VS 2010中鍵入“GridView1.Edit”時,我們會發現EditIndex屬性依然會被高亮顯示,但智能提示列表也被過濾過了,使你能很快地定位名稱中任何地方含有“Edit”一詞的所有其他成員:
這允許我們很快地看到與Edit(編輯)相關的所有方法/屬性/事件,更快地找到我們在找的東西。
搜尋關鍵詞
VS 2010的這個新的智能提示過濾特性在搜尋任何成員時都會非常有用,無論成員的起始字母是什么。例如,如果我們想要在datagrid上啟用分頁,但記不起來該怎么做,我們只要鍵入“GridView1.Paging”,它就會自動地過濾掉其他的成員,而只留下含“paging”一詞的成員。注意下面,GridView類上沒有哪個成員的起始詞為“Paging”,但我還是找到了2個名稱后面含有“paging”的成員:
搜尋類型
VS 2010的這個新的智能提示過濾功能在快速尋找類和類型時也非常有用。例如,當我們鍵入“List”來聲明一個變量時,編輯器會提供自動的過濾,顯示名稱中含有“List”一詞的所有類型(包括IList<> 和 SortedList<>,它們的起始字母并不是“List”):
這將極大地方便你找到記不全的類型名稱,而不必訴求于在對象瀏覽器中搜尋或者使用幫助文檔。
Pascal Case命名法智能提示
.NET框架命名指引指出類型和成員名稱在默認情形下應該使用“Pascal Cased”命名法,這意味著類型或成員名稱中的每個詞應該是以大寫字母起頭(例如,PageIndexChanged)。
VS 2010中的智能提示過濾支持現在允許你利用這個特性,基于Pascal命名模式很快地找到和過濾方法。例如,如果我們鍵入“GridView1.PIC”,VS 2010會過濾智能提示,顯示名稱中含有PIC的成員,以及那些用了Pascal命名法并且各個詞段的起始字母含有那個字母順序的成員:
注意上面,PIC 致使 “PageIndexChanged” 和 “PageIndexChanging” 也顯示了出來。這在決定成員或類型名稱時,可以省我們幾個擊鍵次數。
結束語
我想你會發現VS 2010中這個新的智能提示過濾方法在編寫代碼時,可以方便你很快地找到和使用類和成員,你在VB和C#中都可以利用該特性。
希望本文對你有所幫助,
Scott