C#高级编程:创建模块与程序集详解

需积分: 14 44 下载量 181 浏览量 更新于2024-08-05 收藏 97.07MB PDF 举报
"C#高级编程-创建模块和程序集" 在C#编程中,程序集(Assembly)是构成.NET框架应用程序的基本单元,它包含了可执行代码和元数据,用于描述其中的类型和资源。本资源主要介绍了如何创建模块和程序集,并探讨了它们之间的区别。 18.2 创建程序集 创建程序集是C#开发过程中的关键步骤。程序集可以是可执行文件(.exe)或动态链接库(.dll),它们都包含了元数据和IL(中间语言)代码。Visual Studio在创建任何C#项目时,无论是Console Application还是Windows Forms Application,都会默认生成一个程序集。 18.2.1 创建模块和程序集 模块(Module)是不包含完整程序集信息的DLL,它们不具备程序集的特性,例如版本控制、安全性和命名空间。使用C#编译器`csc`,可以创建模块,命令格式为`csc /target:module 类名.cs`,这将生成`.netmodule`文件。模块的清单(Manifest)只包含引用的外部程序集,但不包含`assembly`条目。 为了将模块转换为程序集,可以使用`/addmodule`选项,将模块添加到现有的程序集中。例如,使用以下命令将模块`A.netmodule`添加到程序集`B.dll`中: ``` csc /target:library /addmodule:A.netmodule /out:B.dll ``` 运行`ildasm`工具查看程序集的清单,可以看到程序集的引用、散列算法和版本信息。 程序集的清单不仅包含模块列表,还包含了类的定义。程序集的类分为两类:一类是从模块中导出的,另一类是直接在程序集中定义的。散列算法用于验证程序集的完整性,版本信息则用于版本管理和依赖性解析。 在编程时,可以选择散列算法来创建程序集,确保代码的安全性和可靠性。通过理解模块和程序集的区别以及如何在C#中操作它们,开发者可以更好地管理和组织.NET框架下的代码库。 此资源出自《C#高级编程》第7版,作者包括Christian Nagel、Bruce Eckel、Jay Glynn等,由李铭翻译,黄静审校,由清华大学出版社出版。书中详细阐述了C#编程的高级概念和技术,是C#开发者深入学习的重要参考资料。