A.3.9智能感知(IntelliSense)

我们在前文阐述代码编辑器的“使用时生成”特性时,就已经用到了IntelliSense功能。IntelliSense是一种代码自动完成机制,它为我们提供了一种访问函数说明,尤其是参数列表的便捷方式——它可以在我们输入代码时自动提示方法名、参数等,这既减少了我们对于API文档的依赖,也加速了代码开发的速度,因为我们可以少写许多的代码。

这里我们介绍一下IntelliSense的两种使用模式:

❑标准完成模式。我们在输入的同时IntelliSense给我们提供建议,并自动高亮最相近的项,此时只能选择建议中的某种选择。

❑建议完成模式:和“标准完成模式”相同的是,在输入的同时IntelliSense仍然会给我们提供建议,并自动高亮最相近的项,但不同的是,我们除了选择建议列表中的某个项以外,还可以选择我们输入的项。

针对这两种模式,我们分别举例进行说明。首先介绍如何在这两种模式之间切换,主要有三种方法:

❑菜单:“编辑”→"IntelliSense"→“切换完成模式”

❑工具栏:首先确保启用了“文本编辑器”工具栏,如果没有启用可以在工具栏的空白处单击鼠标右键,在弹出的快捷菜单中选择“文本编辑器”选项。启用了该工具栏后,就可以单击“切换完成模式”图标进行切换,选中则表示处于“建议完成模式”状态,如图A-49所示。

A.3.9智能感知(IntelliSense) - 图1

图 A-49 切换完成模式

❑快捷键:Ctrl+Alt+空格键

接下来,我们通过一个简单示例来说明这两者之间的区别。为了进行示例,我们先来定义一个类Order,它有一个名叫OrderName的属性,如代码清单A-4所示。

代码清单A-4 Order类


public class Order

{

public string OrderName

{

get;

set;

}

}


首先,在“标准完成模式”状态下观察一下IntelliSense的行为。我们仍然使用“使用时生成”这一便利的特性,尝试为Order类添加一个名叫Order的成员属性,如图A-50所示,此时当键入“=”或者“.”时,输入到编辑器的却是OrderName,而不是我们想要输入的Order。

A.3.9智能感知(IntelliSense) - 图2

图 A-50 标准完成模式下为类添加新成员

那么,现在切换到“建议完成模式”,看看做相同的工作结果如何。如图A-51所示,我们至少可以发现有几处不同:

A.3.9智能感知(IntelliSense) - 图3

图 A-51 建议完成模式下为类添加新成员

❑IntelliSense窗口顶部的框在建议完成模式下会显示键入的字符,而标准完成模式没有;

❑当键入代码时,在建议完成模式下仅显示带有焦点的矩形,并不像标准完成模式下那样,IntelliSense窗口中最匹配的项突出显示,但此时还可以按向上键和向下键来突出显示匹配项。

表A-4总结了“标准完成模式”和“建议完成模式”之间的差异。

A.3.9智能感知(IntelliSense) - 图4