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