1.4 Visual Studio 2005的使用
作为.NET平台的集成开发环境Visual Studio 2005,较之前的Visual Studio 2003有了很大的改进。在本节将简要介绍Visual Studio 2005的使用方法。
1.4.1 启动Visual Studio 2005
安装好Visual Studio 2005后,依次单击【开始】/【所有程序】/【Microsoft Visual Studio 2005】打开选项目录,并单击【Microsoft Visual Studio 2005】,如图1-4所示。
图1-4 启动Visual Studio 2005的过程
如果是第一次启动Visual Studio 2005,启动之后会出现一个选择默认环境配置的对话框。用户可以根据需要,用鼠标左键单击选择Team Test设置、Visual C#开发设置、Visual C++开发设置、Web开发设置和常规开发设置五个选项。本书主要介绍Visual C#,所以选择“Visual C#开发设置”,然后单击“启用Visual Studio”按钮,这时将出现配置的进度条。整个配置的过程如图1-5所示。配置完成之后,将出现Microsoft Visual Studio的起始页面。
图1-5 第一次配置的过程
1.4.2 Visual Studio 2005的起始页
Visual Studio 2005的起始页如图1-6所示,它是用户获取外部信息和服务的基地。起始页上有许多标题需要Internet连接,这些标题提供了关于Visual Studio 2005的最新信息。Microsoft简化了Web服务的过程,只需要单击几次鼠标即可。
图1-6 Visual Studio 2005 的起始页
Visual Studio 2005起始页包含以下几个标题。
◆【最近的项目】:它是一个包含近期处理过的解决方案的列表(创建和生成解决方案将在1.4.4节进行介绍)。第一次启动Visual Studio 2005时,这个列表是空的。另外,这个窗口上还有打开和创建项目的快捷方式,单击“打开”这一行的“项目”,可以打开机器里已有的项目;单击“新建”这一行的“项目”,可以新建一个项目。
◆【开始】:它需要Internet的连接,主要介绍用C#在Visual Studio 2005中编程的一些基础知识,供初学者参考。它主要包括【C#2005的新增功能】、【创建您的第一个应用程序】、【使用初学者工具包】、【如何实现C#编程】、【学习Visual C#】、【连接社区】和【下载其他内容】等几个选项。用鼠标单击各个标题就会弹出相应的窗口。
◆【Visual Studio标题新闻】:同样需要Internet的连接,它主要介绍Visual Studio的一些新闻动向。用鼠标单击其中的选项,它会转到相应的链接。但与【开始】标题的链接有所不同,它不会弹出新的窗口,而是共用起始页的窗口,有点类似于Maxthon浏览器摆放页面的方式,如图1-7所示。可以通过单击×按钮来关闭相应的窗口。
图1-7 窗口的摆放
◆【MSDN中文网站】:仍然需要Internet的连接,它主要介绍Visual Studio 2005开发的一些技术,单击时窗口的显示方式与【Visual Studio标题新闻】一样。
1.4.3 Visual Studio 2005的窗口
在开发Visual C#时,读者将会用到Visual Studio 2005拥有的数量众多的窗口。根据个人的编程习惯,这些窗口是可以自由摆放的。默认的情况下,Visual Studio 2005的外观如图1-8所示,除了这些窗口之外还有主菜单栏、编写代码时的工具栏等。
图1-8 Visual Studio 2005 默认窗口外观
在Visual Studio 2005中,除了用于代码编写和窗体设计的窗口之外,周围还有许多窗口,接下来讨论这些窗口。
【工具箱】窗口:默认的情况下,【工具箱】位于主窗口的左边。【工具箱】窗口所包含的各种工具可以很方便地添加到项目中,每种工具都位于【工具箱】窗口中的一个独立的选项卡中,单击一个选项卡就会显示这种类型的工具。根据创建的应用程序的不同,工具箱选项卡的种类及选项卡中的工具不尽相同,图1-9显示的是Windows应用程序的【工具箱】窗口,图1-10显示的是Web应用程序的【工具箱】窗口。窗口右上方有三个按钮(下面讨论的窗口也一样),按钮可以用来设置窗口的停靠位置;单击按钮将隐藏此窗口,实际上是将其停靠在主窗口的边缘;单击按钮可关闭此窗口。如果不小心关闭了【工具箱】窗口,展开主菜单栏中的【视图】菜单项,找到【工具箱】,单击它就会再次出现【工具箱】窗口,其停放的位置与关闭之前停靠的位置一样。
图1-9 Windows应用程序的工具箱窗口
图1-10 Web应用程序的工具箱窗口
【服务器资源管理器】窗口:通过【服务器资源管理器】可以访问本地计算机上及同一网络内的其他计算机上的可用系统服务,可以便利地访问事件的日志、消息队列、性能计数器及其他系统服务。【服务器资源管理器】不仅仅是一个用来查看信息的控制台,用户还可以直接从【服务器资源管理器】中将对象拖到项目中去。Visual Studio .NET会自动生成代码,从而使用户能在项目中使用这个新创建的对象。通常情况下【服务器资源管理器】窗口跟【工具箱】窗口层叠摆放,另外,还可以在主菜单栏中【视图】菜单项下找到【服务器资源管理器】选项。
【解决方案资源管理器】窗口:【解决方案资源管理器】以树状结构显示Visual Studio .NET中当前的解决方案。通过【解决方案资源管理器】,用户可以浏览组成当前解决方案的全部项目及分属于各个项目的所有文件。
双击项目文件就可以打开文件进行编辑。打开文件的操作会改变中间窗口菜单和工具栏的可选项。以一个Windows应用程序为例,如图1-11所示,双击打开Program.cs文件后,中间窗口会多一个Program.cs文件。
图1-11 双击【解决方案资源管理器】窗口上的选项
【解决方案资源管理器】窗口默认的情况下位于主窗口的右上方,利用窗口上的三个按钮可以改变其摆放位置,在上文中已经介绍过其作用,这里不再重复说明。
【属性】窗口:【属性】窗口用来声明解决方案中的不同元素的设置属性。该窗口的内容随当前使用的项类型不同而变化。单击【解决方案资源管理器】窗口中的图标,将会显示对应选项的【属性】窗口。如果使用的是用户界面的控件或窗体,那么控件和窗体的许多属性也可以通过【属性】窗口来设定。同样,如果使用的是XML文件,这些文件的对象模型属性也可以通过这个窗口来设定。可以通过展开主菜单的【视图】菜单栏找到【属性窗口】选项。
1.4.4 创建和生成项目
新的项目可以通过依次选择主菜单栏中的【文件】/【新建】/【项目】来创建,或者也可以从起始页的【最近项目】的标题栏中选择【创建】行的【项目】。这两种方式都可以用来创建一个新的项目,如图1-12所示。
图1-12 创建新项目
所有的项目都是作为解决方案的一部分来创建的,解决方案中可以包括多个不同类型的项目。解决方案会将用户在Visual Studio .NET IDE实例中所用到的全部项目和文件都捆绑在一起。默认情况下,创建一个新项目时,当前解决方案会自动关闭,并创建一个新的解决方案来寄存新创建的项目。
当选择创建一个新的项目后,屏幕会弹出一个【新建项目】对话框。里面涉及新建项目的类型、使用的项目模板、项目的名称和项目存放的位置,如图1-13所示。
图1-13 【新建项目】对话框
◆ 项目类型:主要用于选择创建的项目所使用的语言,包括Visual C#、Visual C++、Visual J#或Visual Basic等。
◆ 项目模板:创建一个项目后可用的模板很多,每个模板都可以创建一个项目框架,而且还会在项目中添加一组初始的源文件。下面以使用Visual C# 项目为例,说明Visual C#可用的模板。
★ Windows应用程序:创建一个初始包含单个窗体的Windows窗体应用程序,用于支撑这个初始窗体的类还为该应用程序提供了通向程序的主入口点。
★ 类库:创建一个包含单个Visual C#类的项目,不指定任何继承关系。用户可以将这个类用作创建各种类型的新类库的起始点。
★ Windows控件库:创建一个新的项目,用于开发可重用的Windows应用程序用户界面控件,所创建的项目包含有一个从System.Windows.Forms.UseControl继承而来的类。
★ 控制台应用程序:创建一个Windows命令行的应用程序,这种类型的项目包含一个Visual C# .NET类,该类包含了所创建应用程序的主入口点。
★ Crystal Reports应用程序:创建一个水晶报表应用程序,用户可以通过向源程序中添加代码,设计出各种样式的报表应用程序。
★ 设备应用程序:为各种设备(比如无线设备)设计在其环境上运行的应用程序。
★ Excel工作簿:与传统的Excel一样,可以在一个工作簿上使用多个工作表,很方便地实现相关表之间的合并和编辑。
★ Outlook外接程序:自动添加必要的项目引用、文件和基本代码,并将它们用做Microsoft Office Outlook外接应用程序的起始点。
◆ 项目名称:每个项目的模板都会为所创建的项目提供一个默认的项目名称。通常情况下,需要更改项目名称以突出项目的内容,除非用户能接受WindowsApplication1之类的名称。
◆ 项目存放的位置:每个项目的模板同样会为所创建的项目提供一个默认的存储位置,通过单击按钮可以改变其存储位置。
完成上述的操作后,单击【确定】按钮就会生成相应的模板,系统已经为模板添加了模板所需的代码,用户只需要添加实现相应的功能的那块代码即可。
每个项目模板都会创建一组特有的文件,用来编译所创建的项目。同时还会创建一个名称与项目名称相同的子目录,用来保存这些文件。通常这些文件都保存在项目指定的存放位置,默认情况下存放在My Documents\Visual Studio 2005\Projects目录下。
下面将详细介绍一个用Visual C#编写的经典控制台程序——Hello World。创建一个基本的Hello World项目步骤如下。
按照刚才介绍的创建新项目的步骤,打开了【新建项目】对话框以后,在项目类型列表中选择【Visual C#】,然后在模板列表中选择【控制台应用程序】,并将项目的名称改为“Hello World”,可以不改变项目的默认存放地址。确认了新建项目的名称和存放位置之后,单击【确定】按钮,Visual Studio .NET就会自动创建项目。图1-14显示的是创建该项目的过程。
图1-14 创建Hello World控制台程序的过程
在代码编辑区内有一部分代码,那是模块自带的代码:
using System; using System.Collections.Generic; using System.Text;
表示解决方案中引用的系统命名空间,这三行代码简化了后面的编程中对.NET框架的System命名空间中的类型的使用。
namespace Hello_World是解决方案定义的一个自己的名称空间,Visual C#的项目模板所创建的命名空间包含了用户项目中的所有类型,这有助于将所创建的类型与可能在.NET框架中的其他地方存在的类型隔绝开来。在应用程序中对任何新类型的声明都应该在某个唯一的命名空间内进行。
class Program声明一个类。当使用Visual C#编程的时候,所有代码的执行都在某个类的范围内进行---C#中不存在任何全局的函数或全局的方法。在这个类中包含了Hello World应用程序的入口点static void Main(string[] args)函数。
要完成在命令行提示符下显示“Hello World”的效果,还必须在入口函数static void Main(string[] args)中加入以下相应的代码:
单击调试按钮(热键为F5),如图1-14所标注。在【调试】菜单栏中也可以找到【启动调试】选项,效果是一样的。其运行的结果如图1-15所示。
图1-15 运行结果
因为程序的开头已经引用了系统命名空间,所以使用System命名空间下的类时可以简单写成如下代码:
static void Main(string[] args) { Console.Write("Hello World"); Console.Read(); }
其运行的结果与前面一致。
提示
加入的代码如果缺少System.Console.Read()或者Console.Read(),执行的结果仍然是显示Hello World,但由于缺少读取下一个字符的语句,使得显示程序的结果一晃而过,给人以看不到其运行结果的错觉。
1.4.5 调试
编写程序,很难做到一次编写就能顺利运行并得到预期的结果。在编写程序的过程中可能会出现这样那样的错误,有些是语法错误,有些是逻辑错误。在程序的编写过程中,调试就是用来查找和更正这些错误的。
◆ 语法错误:语法错误在调试运行的时候通常是不能通过的,编译器会弹出一个对话框,如图1-16所示。单击【否】按钮,错误列表将列出发现的所有错误。双击错误列表中的错误,在代码编辑区域光标会停留在发生错误的代码行后面,如图1-17所示。
图1-16 发生语法错误时弹出的对话框
图1-17 分析错误列表
◆ 逻辑错误:在编译的时候,有些逻辑错误能够逃脱编译器的检查,但运行的结果与预期的结果会有出入。这类错误的检查只能靠设置断点来检查变量在单步执行时发生的变化,从而发现其位置的所在,比起语法错误的查找,逻辑错误的查找要费力得多。Hello World控制台程序不能很好地说明这个问题,下面举一个比较两个数大小的例子,要求输出较大的一个数。
输入的代码为:
static void Main(string[] args) { int a = 5; int b = 3; Console.WriteLine("a=5"); Console.WriteLine("b=3"); Console.Write("a和b较大的是:"); if (a > b) Console.Write("b"); else Console.Write("a"); Console.Read(); }
显示的结果如图1-18所示。
图1-18 运行结果
显然,这结果与预期的效果不一样,a和b中较大的应该是a。下面设置断点单步运行来查找错误,设置断点的方法是:选择设置断点的位置,单击该行代码的左边缘,出现一个红色的圆,说明断点设置成功。再单击一下,将取消设置的断点,如图1-19所示。
图1-19 设置断点
按热键F11使程序单步执行,此时可查看程序中局部变量的值,从而发现下面的逻辑存在错误:
更改代码为:
正确的程序执行的结果如图1-20所示。
图1-20 修改后的运行结果