我删除了 References 节点中的所有引用,但我仍然可以使用System.Collections.Generic
命名空间。为什么?是因为Visual Studio默认以某种方式添加它们吗?但如果是这种情况,我至少应该能够看到它的 .csproj 文件。
这里发生了什么?
答案 0 :(得分:4)
The documentation for List<T>
表示该类在mscorlib
中定义。每个C#项目都会自动隐式使用它。它必须是,因为它是定义基本类型的相同程序集,例如object
,void
,string
,int
。如果没有这些代码,你将无法编写C#代码,这就是为什么对程序集进行特殊处理的原因。
有一些方法可以抑制它的包含,但这只有在你打算重新实现整个.NET运行时才有用,否则你将无法使用生成的程序集。
答案 1 :(得分:2)
命名空间不一定与程序集一对一映射。例如,没有单独的System.Collections.Generic.dll
或System.Collections.Specialized.dll
。
mscorlib.dll
和System.dll
程序集包含大多数“基本”命名空间,并且它们在C#项目中被隐式引用。