Visual Studio C#:为什么某个库的"使用"指令不够用?

JYe*_*ton 1 c# class-library visual-studio

场景:我需要在我的项目中添加HttpUtility,我开始在我的using指令集中添加"using System.Web".然而,HttpUtility类仍然无法解决,我发现(通过这个问题)我需要添加对我的项目的引用.

问题:为什么我需要添加对此库的引用,对于大多数其他类,"using"指令就足够了?

Kon*_*lph 26

问题:为什么我需要添加对此库的引用,对于大多数其他类,"using"语句就足够了?

using 永远不会满足,您总是需要添加对包含该类的相关DLL的引用.

但是默认情况下会在项目中引用一些库 - 最重要的是在它们中mscorlib.dll.显然你到目前为止所使用的所有课程都在这个库中.


Lee*_*Lee 9

因为Visual Studio在创建新项目时会添加对许多常见dll的引用.

编辑:澄清一下,这里有两个问题 - 命名空间和程序集.命名空间表示类的逻辑层次结构,程序集是类集合的物理"容器".程序集可以包含多个名称空间,并且命名空间可以跨多个程序集进行传播(尽管这种情况相当罕见).using指令意味着您不必完全限定类型名称,例如您可以声明List<T>而不是System.Collections.Generic.List<T>.

Visual Studio在创建包含许多常用命名空间(如System)的新项目时添加对各种程序集的引用.如果为这些程序集中包含的命名空间添加using指令,那么它将起作用,但是如果您需要使用包含在不同程序集(如System.Web)中的命名空间,那么您需要在命名空间之前添加引用解决.


Tho*_*mas 7

using指令仅用于语法简洁.也就是说,System.Web.HttpUtility您可以放在using System.Web;模块的顶部而不是写,而不是写HttpUtility.MethodName.但是,对库的引用实际上允许您调用该库中的类和方法.