本篇体验在一个程序集中包含多个module。
□ 创建3个module
→删除F盘as文件夹中的一些文件,只剩下如下3个文件
→用记事本打开MyFirstModule.cs文件,修改如下,并保存
using System;public class MyFirstModule{public static void Hello(){Console.WriteLine("来自module 1的问候~");}}
→用记事本打开MySecondModule.cs文件,修改如下,并保存
using System;public class MySecondModule{public static void Hello(){Console.WriteLine("来自module 2的问候~");}}
→把MyFirstModule.cs类编译成module
→把MySecondModule.cs类编译成module
→在F盘as文件夹中创建MyThirdModule.cs文件,用记事本打开编写如下代码,并保存
using System;public class MyThirdModule{public static void Hello(){Console.WriteLine("来自module 3的问候~");}}
→把MyThirdModule.cs类编译成module
□ 创建2个程序集并引用运行
现在需要创建2个程序集,一个程序集中包含MyFirstModule和MySecondModule。另一个程序集包含MySecondModule和MyThirdModule。
→创建程序集AssemblyA.dll包含MyFirstModule和MySecondModule。
→创建程序集AssemblyB.dll包含MySecondModule和MyThirdModule。
→编译MainClass.cs文件,引用AssemblyA.dll程序集
以上的dos命令等同于:csc /r:AssemblyA.dll /out:MainClass.exe MainClass.cs
→运行MainClass.exe
→修改MainClass.cs文件
using System;using System;class MainClass{static void Main(){MySecondModule.Hello();MyThirdModule.Hello();}}
→编译MainClass.cs,应用AssemblyB.dll程序集
→运行MainClassAnother.exe
总结:一个程序集是可以包含多个module的。如果将不常用的代码放在单独的module中,就可以减少程序集的载入时间。如果通过网络下载程序集,还可以节约带宽。
“C#程序集系列”包括:
C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序
C#程序集系列02,使用记事本查看可执行程序集的IL代码
C#程序集系列03,引用多个module
C#程序集系列04,在程序集包含多个module的场景下理解关键字internal
C#程序集系列05,让程序集包含多个module
参考资料:
http://www.computersciencevideos.org/ created by Jamie King