首页 > 解决方案 > 比较 C 和 C# 中的程序集

问题描述

我们知道 internal 关键字意味着访问仅限于当前程序集。我来自 C 背景,所以 C 只是将每个源文件(.c)编译为程序集(.a),所以对于 .NET CLR,假设我们在应用程序中有两个文件夹 Model 和 Controller,在 Model 里面有两个类文件(a.cs 和 b.cs),并且在 Controller 内部,还有两个类文件(c.cs 和 d.cs)。那么在我们编译项目的时候,a.cs和b.cs会被编译成同一个汇编文件吗?还是将所有类文件编译成同一个程序集文件?因为从 C 的角度来看,它将是四个汇编文件(链接器当然只会产生一个可执行文件)

标签: c#cclr

解决方案


最后,所有类都将编译为一个项目的一个程序集,但是由于您在谈论在这种情况下在不同目录下具有相同的类名,因此命名空间在逻辑上将只有一个程序集分开,因为模型下的类目录将是“projectName.Model”,控制器目录下的类将是“projectName.Controller”,但如果你将它们放在同一个命名空间下,你会因为重复的类而遇到编译问题(为了让它工作你可以两个类都是部分类)。

这个链接也可以帮助你

希望这能给你一些想法......


推荐阅读