引用与using有什么区别和联系

refyl 2007-02-02 01:14:16
要使用系统的函数,有的只在程序里 using 就行了,而有的,还要 引用相关的dll

二者有何区别
...全文
447 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
vengair 2007-02-05
  • 打赏
  • 举报
回复
项目添加引用的目的是引入程序集
程序集的概念是什么?
程序集是一个 DLL,这是调用其中类的必备条件
一个程序集包括一个或多个命名空间
举例来说
命名空间 System.Data 来自文件 System.Data.DLL
命名空间 System.Data.SqlClient 同样来自 System.Data.DLL
那么意味着你一旦添加了 System.Data 程序集 文件的引用(无论你是从 GAC 添加还是直接添加的 DLL 到项目)
你就可以使用 System.Data 和 System.Data.SqlClient 下的各种类

为什么要 using 呢?
简单地说,你甚至可以不用写一个 using,凡是需要用到类型的地方用完全限定名。

什么是完全限定名?
比如数据集类 DataSet:System.Data.DataSet 就是它的完全限定名。
比如数据库连接类 SqlConnection:System.Data.SqlClient.SqlConnection 就是它的完全限定名。

用了 using 的好处在于:你不必处处写完全限定名,这样会使代码看起来过于冗长。
说到这里,using 的作用明白了吗?其实就是起到了简写的作用。
真正的引用工作是一开始做的,using 只是为了使你的后续编码工作简单而易。

至于你提到的需要 using 才能用,
说到底就是因为你正在使用的类写了不完整的类名称(即非完全限定名),
系统不知道这个类来自哪里,
系统会在所有的 using 下去找到这个类的出处,
如果没有 using,自然找不到。

最后举个例:

你需要定义一个数据集,

方法一
using System.Data;
然后
DataSet mySet = new DataSet();

方法二:
没有 using
直接
System.Data.DataSet mySet = new System.Data.DataSet();

当然,两种方法都要求你对项目添加了对 System.Data 的引用
从实现上,这两种方式都是可行的,但是你是否觉得第一种更简洁

自己实践一下!
qu882618520 2007-02-05
  • 打赏
  • 举报
回复
USING 关建字就是起到给你一个方便过的过程,关键还是要看你是否引用的相关的DLL,如果你在CS里没有使用USING那就你想调用相关的DLL里的方法或者是类,你就需要把全部路径写出来,
比如你的引用了里有一个SYSTEM.WEB.ui 如果你没有用使using SYSTEM.WEB.ui.WebControl;,那么你想在CS里生成一个BUTTON,你就需要System.Web.Ui.WebControls.Button 这样去使用,没有关的哦,也就是引入一个名词空间的别名而己,你也可以这样us MyControl = System.Web.Ui.WebContorls; 那么你相应的用Button的时候就 MyControl.Button aa 这样去使用你想要的东西,不知道你是否能听明白,Using还有一个用法就是Using(){}这一个就不是关键字了,让你有点自学的能力你先去查一下资料就明白了
oldmoon 2007-02-05
  • 打赏
  • 举报
回复
我在没有引用 System.Configuration 的dll
但在写 using 时,它会弹出这个.

如何解释?
-----------
那是因为.net自身带有这类库(程序知道这个dll在什么地方),而有些可能是我们自己写的或者是第三方的dll所以要先引用(也就是告诉程序这个dll在哪个地方),就象你的家人回家你不用带他回,而你的亲戚要去你们家你要引路一样.
buyaowen 2007-02-05
  • 打赏
  • 举报
回复
呵呵
感觉和java的classpath,import很像
li45214521 2007-02-05
  • 打赏
  • 举报
回复
楼上的
自动提示只是在已有程序集才会出现
反之不出现
refyl 2007-02-03
  • 打赏
  • 举报
回复
自动提示,是怎么回事呢?
xyq1986 2007-02-02
  • 打赏
  • 举报
回复
不用引入dll就using的,就是生成的project已经自动添加了某些dll,
而要引入dll才能using的,就是还没有添加的
xylys521 2007-02-02
  • 打赏
  • 举报
回复
引用:dll文件。
using:是dll文件中的命名空间。(类、结构等)
灰太狼 2007-02-02
  • 打赏
  • 举报
回复
有些是系統默認的引用。
Red_angelX 2007-02-02
  • 打赏
  • 举报
回复
System.Configuration不是一个dll
Configuration只是System中的一个类
Red_angelX 2007-02-02
  • 打赏
  • 举报
回复
你把你项目里面的System引用去掉看看还能出提示么
refyl 2007-02-02
  • 打赏
  • 举报
回复
我在没有引用 System.Configuration 的dll
但在写 using 时,它会弹出这个.

如何解释?
Red_angelX 2007-02-02
  • 打赏
  • 举报
回复
先有引用了这个dll
才能using这个dll中的命名空间

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧