为什么我有时添加 `using` 语句而不添加引用,但有时却不添加?
Why do I add `using` statements without adding a reference sometimes but other times I don't?
我是 C# 的新手,但这是为什么:
- 有些东西需要
using
,但没有参考。 (即当我需要 Linq
时,我只添加 using System.Linq;
,但没有引用)
- 有些东西我需要加参考,但是没有
using
?
- 有些东西既需要
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 如何传输感到生疏)。
我是 C# 的新手,但这是为什么:
- 有些东西需要
using
,但没有参考。 (即当我需要Linq
时,我只添加using System.Linq;
,但没有引用) - 有些东西我需要加参考,但是没有
using
? - 有些东西既需要
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 如何传输感到生疏)。