程序集 是什么如何区别程序集的

程序集是根据程序集的版本号号 来区别。

CLI程序集可分为两类:进程程序集(EXE)、库程序集(DLL)。

其中.exe文件是一个自己执行的程序集,而.dll将被其他程序集加载后运行。

程序集编译为IL代码,这是一种中间语言。框架内部把IL字节码转换为本地的汇编代码。对于打印"Hello World"的程序,其等效的IL代码是:

 .method private hidebysig static void  Main(string[] args) cil managed {
  .entrypoint
  .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
  // Code size       11 (0xb)
  .maxstack  1
  IL_0000:  ldstr      "Hello World"
  IL_0005:  call       void [mscorlib]System.Console::WriteLine(string)
  IL_000a:  ret } // end of method Class1::Main

 

 

以及 程序集 命名空间的区分?

如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物理组织形式。只有同时指定类型所在的命名空间及实现该类型的程序集,才能完全限定该类。

程序集和命名空间不存在必然联系

程序集的的作用域大于命名空间。所以允许同一个程序集底下建立N个命名空间。