c#引用 和命名空间问题

2024-11-27 22:32:14
推荐回答(3个)
回答1:

先给您解释一下,什么是USING.
Using作为引入命名空间指令的用法规则为:
using Namespace;
在.NET程序中,最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本最常用的操作,下面的代码对我们来说最为熟悉不过:
using System;
这样,我们在程序中就可以直接使用命名空间中的类型,而不必指定详细的类型名称。using指令可以访问嵌套命名空间。
关于:命名空间
命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET中很多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间,

OK.再接着看.您问的问题是.
using System.Management 需要引用dll System.Management

您做一个实验.在您的解决方案中新建一个项目.一个类库项目.在您不引用他的时候.USING语句也无法使用.对吧? 必须添加了引用以后才能有USING您的类库中的任意命名空间.

根据上述两种情况.很明显的得知.C# 中. 所有的DLL文件与您的项目均是解耦的.
您的项目也是单独的一个命名空间划分.DLL与DLL之间没有必然联系.
即使您在单纯敲代码的层面上看
System.Net;

直接输入这个可以.但是当您新建的是WINFORM程序.System.Net;也就不能用了.这个原因是.VS自动帮您引用了部分DLL

由于DLL与DLL之间原本是解耦.没有任何联系的.所以导致您要USING某一个命名空间时.就必须去引用该命名空间的DLL.不然无法找到具体对应内容.无法正确引用.

回答2:

C#引用不像C++之类的语言直接用#include就可以了,C#引用你必须先添加对DLL的引用才能在类里面调用DLL

回答3:

个人感觉c#里类之间的联系更容易,只要你的代码在AppCode中,那在整个网站中,用类的全限定名引用就可以了。(或为了省去一些命名空间的限定,用Using)

还有就是只要dll在bin,也可以直接用类的全限定名引用。

但如果dll没有在bin文件夹中,就必须要引用,这个时候会有一个dll的副本进入bin文件夹里。