.net 引用和名称空间是如何工作的?

.net 引用和名称空间是如何工作的?,.net,reference,.net,Reference,我目前正在开发一个.NET Windows服务,我很好奇引用和名称空间在高层次上是如何工作的。我来自C++背景,只熟悉像“包含”等语句。感谢解释。 一个引用只是一个方法,告诉编译器在试图解析它们时要查找引用的程序集。 现在,名称空间不再绑定到程序集。名称空间是逻辑构造,而程序集是物理构造 这就是为什么在.NET中可以从mscorlib.dll、System.dll、System.Core.dll等中的系统命名空间中看到类 因此,虽然这两者之间可能存在巨大的重叠,但应该避免在太多程序集中泄漏命名空

我目前正在开发一个.NET Windows服务,我很好奇引用和名称空间在高层次上是如何工作的。我来自C++背景,只熟悉像“包含”等语句。感谢解释。

一个引用只是一个方法,告诉编译器在试图解析它们时要查找引用的程序集。 现在,名称空间不再绑定到程序集。名称空间是逻辑构造,而程序集是物理构造

这就是为什么在.NET中可以从mscorlib.dll、System.dll、System.Core.dll等中的系统命名空间中看到类

因此,虽然这两者之间可能存在巨大的重叠,但应该避免在太多程序集中泄漏命名空间

我采用每个命名空间的程序集方法(假定程序集是专用的,则该程序集仅具有来自一个命名空间的类型),但您的方法可能会有所不同


但是,通常情况下,保持名称空间出血较小(或根本不出血),您通常会没事。

出于所有目的,引用(例如使用System.Text)与#include类似,但不包括链接程序集的头文件

名称空间是将代码划分为语义相似块的一种非常方便的方法;例如,所有Xml类型类都在System.Xml中