6

On MSDN I can read what it does, but I would like to know what it does technically (tells compiler where to look for types..)? I mean using as a directive.

4

4 回答 4

9

using指令的主要功能是使命名空间内的类型无需对用户代码进行限定即可使用。它考虑了在引用的程序集中定义的一组命名空间和类型以及正在编译的项目。

以 MyTypes.Dll 中的以下定义为例

namespace MyTypes {
  class Class1 {}
}

现在考虑MyTypes.dll从另一个具有不同命名空间的项目中引用。没有使用指令来创建Class1我需要限定名称

MyTypes.Class1 local1 = new MyTypes.Class1();

using指令允许我删除此限定

using MyTypes;
...
Class1 local1 = new Class1();
于 2010-10-21T20:53:07.363 回答
2

import@JaredPar 的答案是正确的,但是我想补充一点,它的工作方式与Java中的说法不太一样。(如果我对 Javaimport实际将其导入内存有误,请有人纠正我)

您需要包含 DLL 或项目引用才能使用,using但它不会加载到内存中,直到您实际调用程序集中的方法/属性/某些东西。所以你可以有using System.Linq;,但如果你实际上不使用任何 Linq 方法,则永远不会加载 Linq 程序集。(我不是 100% 肯定 Linq 在它自己的物理程序集中,因为命名空间和程序集不是 1:1,但为了举例,我假设它是)

于 2010-10-21T21:01:01.700 回答
0

using informs the compiler which namespaces to search for names used in the file but not defined in the file.

于 2010-10-21T20:52:38.873 回答
-1

使用只是告诉编译器转到程序集的配置文件并搜索具有给定名称的特定 DLL,如果找到该 DLL,则它将该 dll 链接到当前项目。using 只是一个链接操作,让 DLL 在内存中的共享空间中相互通信。下面这个人是对的

于 2010-10-21T21:01:18.367 回答