在 C# 章节中,前面的文章我们都是将 C# 作为 ASP.NET 的开发语言来介绍的,其中的代码都受到了 ASP.NET 的影响,比如 Page_Load 函数就属于 ASP.NET 的内容,在本章节以后的部分文章中,我们将介绍“纯” C#,它不在 ASP.NET 中运行,遍身上下皆是 C# 代码,所以我们先讲一讲如何编译运行“纯” C# 程序。
编辑“纯” C# 代码,就是编辑 C# 类文件,扩展名为 .cs(VB 类文件扩展名为 .vb),可以用任何文本编辑器编辑。C# 是完全面向对象的,不存在全局的变量、常量和函数,所以所有程序代码都集中在类中,将某个类的 Main 函数作为程序入口函数就可以运行了。
关于如何编写这些类,我们在今后的文章中有专门介绍,下面谈谈如何把 .cs 文件编译成 .exe 文件。
要将 .cs 文件编译成 .exe 文件,需要一个 csc.exe(以下简称 csc)文件(编译 .vb 的文件是 vbc.exe),在安装了 .NET Framework 后,我们可以在类似 C:WINDOWSMicrosoft.NETFrameworkv2.0.50727 的位置找到这个文件,我们应该在命令提示符中运行这个文件,可以通过 csc /? 查看该程序的选项。
我们现有 .cs 文件如下:
该文件存储于 D:foo.cs,我们现在通过 csc 将其编译成 .exe 保存于 E:foo.exe。
双击 foo.exe,我们可以看到窗口一闪而过,这是由于程序没有任何应用代码,“一下就执行完了”,不过我们通常在命令提示符中执行,而不是双击。
要注意的是这里生成的 exe 是一个由中间语言(IL),元数据(Metadata)和一个额外的被编译器添加的目标平台的标准可执行文件头(比如Win32平台就是加了一个标准Win32可执行文件头)组成的PE(portable executable,可移植执行体)文件,而不是传统的二进制可执行文件--虽然他们有着相同的扩展名。
我们可以很方便地解剖这个 exe 文件以获得中间语言,利用文件 ildasm.exe(以下简称 ildasm),该文件可以在类似 C:Program FilesMicrosoft Visual Studio 8SDKv2.0Bin 的位置找到(需要安装 .NET SDK)。