Visual Studio和Intellisense
我一直觉得VisualStudio是微软最了不起的产品之一,也是最智能和直观的语言开发工具之一,虽然它不是我日常主要的开发环境。在其中写程序总会给我轻松愉快的感觉。Intellisense是Visual Studio里的代码提示和完成功能,也是我见过的同类功能中最聪明的。关键字、类型名称、方法名称、类型和方法字段名称、对象初始化代码、注册事件处理程序的代码……输入代码的时时刻刻、各种场景,Visual Studio都会贴心地给出提示列表,默认选中它推测最可能的选项,并且在随后的回车、空格、句点、左圆括号等按键时自动输入选中的内容,使得原本像一篇文章的由众多单词和符号组成的代码只需少数按键和选择就能完成。Intellisense的聪明常常让我衷心赞叹,例如在长长的提示列表里它能记住最近一次类似的调用输入的是什么,从而选中该项目,这样的情形包括字段列表和对象的方法列表。
int iA, iB, pos;
string text="abcba";
iB=text.IndexOf("b");
//再次键入i时,VS会显示提示列表,包括iA和iB, 但是会记住最近的输入,选中iB而不是按字母排序更前的iA。接下来只需键入后续的加号。
pos=iB+1;
//类似地,键入text.后,VS在弹出的方法列表里,会选中最近输入的IndexOf,接下来只需键入左圆括号。
iA=text.IndexfOf("a");
程序员有时抱怨C#这类的静态强类型语言在声明和初始化变量时代码显得冗赘,例如MyClass obj=new MyClass();,MyClass作为类型名称要输入两次。有同感的计算机科学家因而研究出类型推断(Type Inference),使得在现在的C#里可以像在JavaScript里一样用var关键字声明变量,再根据后续的初始化代码推断出变量的类型,如var obj=new MyClass();。实际上如果是在VS里编程,类型名称也不需要输入两次,VS会代劳。
List