为什么我有时添加 `using` 语句而不添加引用,但有时却不添加?

Why do I add `using` statements without adding a reference sometimes but other times I don't?

我是 C# 的新手,但这是为什么:

  1. 有些东西需要 using,但没有参考。 (即当我需要 Linq 时,我只添加 using System.Linq;,但没有引用)
  2. 有些东西我需要加参考,但是没有using?
  3. 有些东西既需要 using 又需要参考?

.NET 仅使用完全限定的类型名称。但是必须编写完全限定的类型名称很麻烦。谁愿意一遍又一遍地写 System.Data.SqlClient.SqlConnection,如果一个 using System.Data.SqlClient; 允许你只写 SqlConnection

因此发明了称为 "using" 的语言功能,以允许编译器仅从 class 名称推断出完全限定的类型名称。 using 表示:"If I give you no fully qualified name, start trying to append the usings." 大多数情况下这都能完美运行。你很少会得到模棱两可的名字(class在 2+ 个命名空间中有相同的名字。最常发生在定时器中)。

如果您添加 using 而不添加引用,则您已经有了引用。

如果添加引用而不添加 using,则使用完全限定名称。或者也许是您已经在使用的 Namesapce,也包括 using(我对 usings 如何传输感到生疏)。