在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
安装好Visual Studio .NET 2003后,就可以开始编写第一个项目了。在Visual Studio .NET中,很少从一个空白文件开始,从头键入C#代码,就像本书前面章节那样(当然,如果确实要从头开始编写代码,该IDE也提供了空应用程序项目选项)。编写项目的方式一般是先告诉Visual Studio .NET要创建什么类型的项目,然后Visual Studio .NET会自动生成文件和C#代码,给出该类型项目的基本框架。接着,用户就可以在其中添加自己的代码了。例如,如果要编写一个基于Windows GUI界面的应用程序(在.NET中,这称为Windows窗体),Visual Studio .NET就会建立一个文件,其中包含的C#源代码创建了一个基本窗体,这个窗体可以与Windows通信,接收事件。它还可以最大化、最小化、重新设置大小,用户只需在其中添加控件或其他功能。如果应用程序要设计为命令行工具(控制台应用程序),Visual Studio .NET就会提供一个基本命名空间、类和Main()方法。 最后,在创建项目时,Visual Studio .NET还设置了提供给C#编译器的编译选项—— 无论项目是编译为命令行应用程序、库,还是编译为Windows应用程序。它还告诉编译器需要引用的基类库(Windows GUI应用程序需要引用许多Windows.Forms相关的库,控制台应用程序则不需要)。当然如果必要,用户可以在编辑时,修改这些设置。 在第一次启动Visual Studio .NET时,出现的窗口称为Start Page,如图12-4所示。这个Start Page是一个HTML页面,其中包含各种链接,通过它们可以进入有用的网站,设置Visual Studio .NET的外观和配置(My Profile选项卡),打开现有的项目,或者启动一个新项目。
图 12-4 这个屏幕图显示了使用Visual Studio .NET后的情形,其中有一个最近编辑的项目列表。单击其中的一个项目就可以打开它。 注意: 利用 My Profile选项,甚至可以改变Visual Studio .NET的外观,以匹配以前常用的开发环境。例如,可以设置Visual Studio .NET,使它的用户界面看起来类似于以前的VB或C++ IDE。但要注意,这个选项只能改变各个窗口在屏幕上的位置。您将发现,大多数菜单、工具栏选项以及每个窗口的具体功能都是新的。 1. 选择项目类型创建新项目时,既可以单击起始页面上的New Project按钮,也可以单击File菜单,选择New︱Project。无论使用什么方式,都会显示New Project对话框,如图12-5所示,其中给出了可以创建的各种项目。
图 12-5 该对话框要求用户选择Visual Studio .NET为用户生成的某种初始框架文件和代码、编译选项,以及编译代码所使用的编译器:C#、VB.NET、J#或Visual C++.NET编译器。从这里可以看出,Microsoft为.NET提供了多种语言集成。对于本例,我们选择了C#控制台应用程序。 注意: 这里不打算介绍不同类型的项目的所有选项。在C++方面,Visual Studio .NET可以创建所有旧的C++项目类型—— MFC应用程序、ALT项目等。在VB.NET方面,选项有一些变化,例如,可以创建VB.NET命令行应用程序(控制台应用程序)、.NET组件(类库)或者.NET控件(Windows控件库),但不能创建基于COM的旧风格的控件(.NET控件可以取代这种ActiveX控件)。 表12-1列出了Visual C# Projects下所有可用的选项,以及详细讨论这些选项的章节。注意,在Other Projects选项下还有一些比较专业的C#模板项目。 表 12-1
(续表)
2. 新建的控制台项目在上述对话框中选择Console Application选项,单击OK按钮,Visual Studio .NET就会提供许多文件,包括一个源文件Class1.cs,其中包含了最初的框架代码。 屏幕图12-6显示了Visual Studio .NET编写的代码。 可以看出,这是一个C#程序,但它实际上没有做任何工作,只是包含了C#可执行程序所必须的基本项目:一个命名空间和一个包含Main()方法的类,其中Main()方法是程序的入口点。(严格说来,命名空间是不必要的,但不声明命名空间是一种不好的编程习惯)。按下F5键,或者选择Debug菜单中的Start,这段代码就可以编译和运行。在这样做之前,在程序中加入一行代码,让应用程序完成某个工作: static void Main(string[] args) { // // TODO: Add code to start application here // Console.WriteLine("Hello from all the editors at Wrox Press"); } 如果编译并运行了该项目,就会显示一个控制台窗口,但该窗口几乎立即就消失了,用户几乎看不到输出的信息。原因是在创建该项目,Visual Studio .NET记住了用户指定的设置,所以会把它编译并运行为控制台应用程序。然后,Windows知道需要运行一个控制台应用程序,但没有运行该程序的控制台窗口。所以,Windows就创建一个控制台窗口,并运行该程序。只要程序退出,Windows就认为不再需要该控制台窗口,因此就即时删除了它。这些都是非常逻辑化的操作,但如果希望能看到项目的输出结果,这些操作对用户就没有什么帮助。
图 12-6 要避免这个问题,可以在Main()方法结束前**下述代码: static void Main(string[] args) { // // TODO: Add code to start application here // Console.WriteLine("Hello from all the editors at Wrox Press"); Console.ReadLine(); } 这样,代码运行后,会显示其输出结果,之后执行Console.ReadLine()语句,用户按下回车键后,程序退出。这表示在用户按下回车键之前,控制台窗口一直会挂起。 注意这仅是在Visual Studio .NET中试运行控制台应用程序的问题。如果编写的是一个Windows应用程序,该应用程序显示的窗口会自动停留在屏幕上,直到用户显式退出程序为止。同样,如果在命令行提示符上运行一个控制台应用程序,就没有窗口消失的问题。 3. 其他文件的创建Class1.cs源代码文件不是Visual Studio .NET创建的惟一文件。如果查看一下Visual Studio .NET创建项目的文件夹,就会看到其中不仅仅有C#文件,还有如图12-7所示的完整目录结构。
图 12-7 文件夹bin和obj存储编译好的文件和中间文件,obj的子文件夹存储各种临时或中间文件,bin的子文件夹存储编译好的程序集。 注意: 传统上,VB开发人员只是编写它们的代码,然后运行它们。代码在发布前,必须编译成可执行文件,但VB在调试中隐藏了这个过程。而在C#中,这个过程是显式的:要运行代码,必须先编译它,即在某处创建一个程序集。 在项目的主文件夹BasicConsoleApp中,剩余的文件都是由Visual Studio .NET建立的,它们包含项目的信息,这样,Visual Studio .NET就知道如何编译项目,在下一次打开该项目时,知道如何读取它. |
请发表评论