为什么C#的标准库需要汇编引用和导入?

时间:2010-10-08 04:28:10

标签: c# assemblies

我必须为标准库执行这两项操作的原因是什么?对于我使用的每种其他语言,我只需要一个语言来访问标准库。

4 个答案:

答案 0 :(得分:9)

程序集引用使程序集中的代码可用于另一个程序集。 using指令使另一个名称空间的类型可用于给定的源文件。这些是完全独立的概念。如果你有倾向,你可以从不使用usings指令并使用完全限定的类型名称。同样,可以使用usings指令引用同一程序集中的其他名称空间

此外,为了讨论的目的,在Java和C#之间的程序集/ jar和using / /之间存在完美的类比。所以C#在这里并不是唯一的。

答案 1 :(得分:2)

程序集引用是平台的概念,而命名空间导入是该语言的概念。

您需要为编译器提供程序集引用,因为它需要知道您正在使用的库代码的位置。但using指令纯粹是可选的。这两个都可以正常编译:

示例1:

System.Console.WriteLine("Without a using directive");

示例2:

using System;
//...
Console.WriteLine("With a using directive");

using指令仅用于避免必须在整个地方编写完全限定名称。

答案 2 :(得分:1)

Visual Studio需要引用的某些属性来决定如何在运行时解决它以及在构建项目时如何部署它。简单的import语句不能暗示这些选项。

答案 3 :(得分:1)

您需要引用程序集以让编译器知道它们导出的类型的位置。您不需要包含名称空间,但它可以使代码更容易阅读,因为您可以避免使用完全限定名称。此外,由于每个程序集可能会暴露多个名称空间,因此它是分组相关类型的便捷方式。