代码 1-2:控制台输出(<Hello>\Program.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Hello
{
class Program
    {
    static void Main(string[] args)
        {
        Console.WriteLine("Hello, C#!");
        }
    }
}

加粗部分就是我们添加的代码,现在我们可以使用键盘上的Ctrl+F5组合键来运行程序,运行的结果如图1-2所示。

图1-2

这就是我们的第一个C#程序,虽然它并不能真正地干点什么,但它证明了我们的开发环境已经可以工作了。

接下来,我们就分析一下这个简单的示例程序,看看C#程序的基本结构是怎样的。

1.4.2 C#程序的基本结构

先来看一看代码1-2中的前四行,这些代码都由using关键字开始,并由一个半角分号(;)作为结束。using关键字在这里的功能就是引用了.NET Framework资源中的四个命名空间(namespace),它们包括:

● System

● System.Collections.Generic

● System.Linq

● System.Text

通过using关键字引用这些命名空间,我们就可以在当前代码文件(Program.cs)中使用这些命名空间中的资源,如类、结构、枚举等。使用using关键字也是我们在代码文件中引用.NET Framework资源或其他外部资源的重要途径。在这四行代码中的两个关键元素,一个是using关键字,另一个就是每行语句最后的分号(这是C#语言的规范之一,单条语句由一个分号作为结束)。

接下来要说明的是语句“namespace Hello”,以及紧随其后的“{”和文件中最后一个“}”。namespace关键字用于定义一个命名空间,在随后深入的学习中,我们会发现,命名空间是组织代码结构的一种重要方式。这个命名空间的名称为“Hello”,也就是程序的名称。在这里,我们可以理解为:每一个程序的主代码都包含在一个同名的命名空间之中(这实际上也是C#开发软件项目中的一个约定)。

成对出现的“{”和“}”,用于定义一个代码块,除了前面定义的Hello命名空间,还可以定义类(class)、结构(struct)、枚举(enum)、方法、复合语句等众多的代码元素,我们在以后的学习中会逐渐了解这些方面的内容。

再往下,我们看到了class关键字,也许你已经猜到了,这个关键字用来定义一个“类”。在这里,类的名称是“Program”,你会发现,类名和代码所在的文件名称是相同的。这同样是C#代码编写过程中的一个约定,同时也是软件开发的一个很好的习惯,它可以让我们通过代码文件的名称很方便地查找需要的代码内容。

最后,是我们添加测试代码的地方,在这里定义了一个静态的(static)没有返回值的(void)方法,其名称为Main。这个方法有一个参数(string[]args),参数的类型是字符串数组(string[]),名称为args,这个参数的功能是带入使用命令行执行程序时的参数,其中,每一个参数之间使用空白字符分隔。在Main()方法中,是我们添加的一行代码,用于在控制台显示一些文本内容。

一个静态的Main()方法同样是一个约定,它将是C#程序的入口,这个方法将由系统自动调用,并从这里开始运行一个程序。

这就是一个最简单的C#控制台程序。从这个程序中,我们可以看出C#程序的基本组织结构。

首先,我们的C#代码都存放于扩展名为“.cs”的文件中。这是代码文档的物理存放形式。

然后,我们会发现代码都定义在一个个的命名空间(namespace)之中。在命名空间中定义了类(class),类中可以定义一些方法,如程序入口的Main()方法。最后,在方法中才是真正的执行代码。这就是C#代码的一般组织形式。

从第2章开始,我们一般都会使用控制台应用程序作为示例项目类型。在介绍一些特殊内容时可能会用到窗口程序,请读者在测试代码时注意这一点。下面,我们就来了解如何创建一个窗口程序。

1.4.3 如何创建窗体程序

打开Visual C#2010 Express,通过菜单“文件”→“新建项目”打开新建项目窗口,在其中选择“Windows窗体应用程序”,这一次,我们将项目名称修改为“HelloForm”。

请注意,我们所习惯的Windows系统中的“窗口(Window)”概念,在.NET开发环境中统一称为“窗体(Form)”,关于这一点,相信VB程序员不会感到陌生。在这里,Windows窗体就是我们所说的窗口。希望名词的改变不会让大家感到困惑。在本书中,我们会同时使用“窗体”和“窗口”两个术语,但大家应该知道它们实际上是一回事。

现在,我们回到HelloFrom项目中。

当我们创建了一个新的“Windows窗体应用程序”以后,开发环境同样会自动创建一些内容。我们可以在“解决方案资源管理器”窗口中查看这些内容,如图1-3所示。

你可能在前面的“Hello”项目中已经注意到了这个窗口,但在“Hello”项目中,为了把注意力放在代码上,我们并没有介绍这个窗口。现在,我们就来了解一下这个窗口中显示的内容,以及我们应该如何使用“解决方案资源管理器”。如果此窗口没有显示出来,可以通过菜单“视图”→“其他窗口”→“解决方案资源管理器”打开。

当我们创建一个新的项目时,它都会包含在一个与项目同名的“解决方案”中。而在我们的实际工作中,一个解决方案往往可以包括一个或多个项目,特别是在大型的软件项目中。

一个项目一般都会包括以下三个基本内容:

● Properties,项目的相关的属性、参数设置,如启动、资源管理、编译设置,等等。

● 引用,用于管理引用的资源,如.NET Framework资源等。

● Program.cs,项目的主代码文件,一般包含程序的入口——一个静态的Main()方法。

在“Hello”项目中,我们可以看到这三项内容。在“HelloForm”项目中,开发环境为我们自动创建了Form1窗体,其代码同样在一个同名的“.cs”文件,即“Form1.cs”文件中。我们不需要添加或修改代码,可以直接按下键盘上的F5键运行程序,运行结果将显示一个空白的标准窗口,关闭窗口后,程序就会自动退出。

现在,我们可以来看一看“Program.cs”文件中的内容,了解一下程序是如何启动的,如代码1-3所示。

图1-3