命名空间:
就像硬盘里的文件夹, 不同的文件夹下存放不同的文件(类),这样就可以避免文件全部堆在一个地方引起混乱(同理, 这样就可以为不同的模块建立命名空间,这样就可以使类更容易管理), 并且可以避免多个同名文件无法放在一个文件夹下。
程序集:
.NET编写的DLL和EXE就是程序集。 程序集包括:
1、程序集清单,包含程序集元数据。
2、类型元数据。
3、实现这些类型的 Microsoft 中间语言 (MSIL) 代码。
4、资源集。
所以这两个概念其实是不同的东西,没有什么联系。
只是一般建立类库项目(DLL)的时候会用默认的命名空间来命名程序集文件,这样很容易使人把这两个东西联系起来。
注:添加一个引用并不等同于使用using语句来导入一个命名空间。using语句允许你不必键入一长串完全合法的类名就可以使用命名空间中的类。然而,如果 丢掉一个引用的话,你就不能使用using语句来包含对应的命名空间。比如,如果引入了System.Web.UI命名空间,你可以在代码中编写Page 类,而不是System.Web.UI.Page。但是如果你没有添加对包含这些类的System.Web.dll程序集的引用的话,就不能访问 System.Web.UI命名空间里的类。