模块,准确的来说,并不是C#的概念,而是微软的运行时环境CLR的概念。想要学好C#断然不能只是会使用VS之类的IDE写写代码然后编译运行,很多相关的概念我们也需要去了解。
这一节,我们就简单讨论下C#模块。
其实C#模块,我们几乎每天都需要接触到(如果我们每天都需要写C#代码并且进行编译的话),每次我们对一个C#类(class)进行编译都会生成模块。
csc编译获得模块
下面,我们以经典的hello world为例。
- 创建一个Program.cs文件,内容只是简单的向控制台输出hello world:
public sealed class Program{
public static void Main() {
System.Console.WriteLine("hello world");
}
}
- 使用csc.exe 对文件进行编译:
csc.exe /out:Program.exe /t:exe /r:MSCorLib.dll Program.cs
如果以上命令运行成功的话,我们会在源文件的文件夹中得到一个Program.exe的文件。这个Program.exe 就是一个标准的PE32或者PE32+的文件(PE32+对应的是64位,这里没有PE64),也就是一个C#模块。
在继续讲解C#模块之前, 我们先来看看上面这个编