2.5 程序的结构
一段代码之所以能称为程序,是因为它通过一定的结构,实现了一定的功能。本节从整体结构出发,学习C#程序结构所必须了解的一些知识点。
2.5.1 用类搭建程序
C#是一个完全面向对象编程的开发语言,而面向对象开发的主要元素就是类和对象。在C#中,尽量将所有的程序封装起来,以达到重用的目的,同时,还便于程序的二次开发。
下面演示一个类的创建过程,并演示如何在程序中调用类。
(1)打开VS2005,新建一个“控制台应用程序”,命名为“classSample”。
(2)在解决方案资源管理器中,在“classSample”根目录上单击右键,在弹出的菜单中,单击“添加|新建项”命令,打开“添加新项”对话框,如图2.19所示。

图2.19 添加新项对话框
(3)在模板中选中“类”,在名称文本框内输入“classTest.cs”,单击“添加”按钮,回到VS2005工作界面。
(4)此时,在解决方案资源管理器中多了一个“classTest.cs”文件。双击打开此文件,初始代码如下所示。其中有一个名为“classTest”的类。
using System;
using System.Collections.Generic;
using System.Text;
namespace classSample
{
class classTest
{
}
}
注意:标识类的关键字为“class”。
(5)在“classTest”类中设计一个方法“testWrite”,用来输出“Hello World”语句。代码如下所示。
class classTest
{
public void testWrite()
{
Console.WriteLine("Hello World!");//输出“Hello World!”
}
}
(6)按“Ctrl+S”保存类文件。
注意:一定要先保存类文件,否则,无法在后面的代码中调用此类。这是.NET框架的关键技术,保存时会自动编译类文件。
(7)打开默认生成的“Program.cs”文件,这里的Main函数是程序的入口处,表示本应用程序的运行从此处开始。
(8)在Main函数中添加对新建类的调用,代码如下所示。
class Program
{
static void Main(string[] args)
{
classTest test = new classTest(); //创建类的对象
test.testWrite(); //调用类的方法
}
}
(9)按“Ctrl+F5”组合键运行程序,运行效果如图2.20所示。

图2.20 调用类对象的运行效果
本例的作用在于描述如何在应用程序中创建类,如何用类完成某段程序的调用。用类搭建程序的好处在于不管输出内容发生什么改变,只需要改变类“classTest”中的内容即可,而无需改变其他应用程序。还有一个好处在于,其他人也可以调用这个类,这就是类的可重用性。
2.5.2 使用命名空间
命名空间就像一个大房子,所有的程序代码都在这个房子里完成。命名空间用关键字“namespace”表示,一般存在于代码的最外层。在C#中,一个项目下的所有程序都在一个命名空间下,默认的命名空间名就是项目名。
虽然默认只生成一个命名空间,但可以在命名空间内嵌套命名空间,代码如下所示。
namespace ConsoleApplication1
{
namespace myspace
{
class Class1
{
public void test()
{
Console.WriteLine("a");
}
}
}
}
上述命名空间中的方法“test”该如何调用呢?真正的方法如下所示。
static void Main(string[] args)
{
myspace.Class1 mycls = new ConsoleApplication1.myspace.Class1();
mycls.test();
}
其中,“ConsoleApplication1”表示最外层的命名空间,与项目同名。“myspace”表示内部嵌套的命名空间,“Class1”是类的对象名,而“test”才是最后的方法调用。注意命名空间和内部命名空间、类之间通过“.”符号关联。
2.5.3 寻找程序的入口
在C#中,有个很特殊的函数Main,它存在于默认生成的文件Program.cs中,是C#程序的入口点。一个C#应用程序只能有一个Main函数。默认生成的函数代码如下所示。
class Program
{
static void Main(string[ ] args)
{
}
}
在C#中,Main函数扮演的角色主要有以下几个特点:
Main函数是程序的入口点,程序控制在此函数中开始和结束。
Main函数必须为静态函数,而不应该为公共函数。默认情况下,并不返回任何数据,使用“void”关键字。
声明Main函数时,默认包含一个名为“args”参数组,这个参数组的个数可以是0,也可以是多个参数。





