为什么我可以在不引用任何程序集的情况下使用 System.Collections.Generic 命名空间?

Cod*_*shi 0 c# visual-studio

我从References节点中删除了所有引用,但我仍然可以使用System.Collections.Generic命名空间。为什么?是因为 Visual Studio 以某种方式默认添加了它们吗?但如果是这样的话,我至少应该能够看到我的.csproj文件。

这里发生了什么?

在此处输入图片说明

小智 6

的文档List<T>说该类是在mscorlib. 这对那里的每个 C# 项目都自动隐式可用。它必须是,因为它是定义基本类型的同一个程序集,例如object, void, string, int。如果没有这些,您将无法编写 C# 代码,这就是程序集被给予特殊处理的原因。

有多种方法可以抑制它的包含,但这仅在您打算重新实现整个 .NET 运行时时有用,否则您将无法使用生成的程序集。

  • https://msdn.microsoft.com/en-us/library/hh708954.aspx:“所有桌面项目都包含对 mscorlib 的隐式引用。” (3认同)