A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心灵苦旅 中级黑马   /  2014-3-28 10:13  /  1248 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如在定义SqlConnection变量时,会使用到
using (SqlConnection con=new SqlConnection())
{
}
那在什么情况下需要使用using ,什么情况不需要使用


评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

8 个回复

倒序浏览
链接数据库,或者硬盘资源进行数据读写时,由于资源链接量的问题,用完后要释放资源即dispose()方法,using表示用完后就释放。凡是能点出dispose方法的对象均需using。
回复 使用道具 举报 1 0
一般实现了IDisposible接口的类就需要用using,为了释放资源。
回复 使用道具 举报 2 0
建立连接时,如果执行的是把数据库的数据取回本地的方式需要用到using(关闭连接并且释放空间),如果是在线读取数据库数据的情况,就不需要用到using了(主要是DataReader对象)。不知LZ是否同意这样的解释?
回复 使用道具 举报
本帖最后由 心灵苦旅 于 2014-3-28 12:49 编辑
白夜行 发表于 2014-3-28 10:19
一般实现了IDisposible接口的类就需要用using,为了释放资源。

谢啦,可不可以列举一些常用的实现了IDisposible接口的类呀
回复 使用道具 举报
张变 发表于 2014-3-28 10:19
链接数据库,或者硬盘资源进行数据读写时,由于资源链接量的问题,用完后要释放资源即dispose()方法,usi ...

确实,这倒是个好方法,谢谢啦
看了下 IDisposable 的定义,
  1.     // 摘要:
  2.     //     定义一种释放分配的资源的方法。
  3.     [ComVisible(true)]
  4.     public interface IDisposable
  5.     {
  6.         // 摘要:
  7.         //     执行与释放或重置非托管资源相关的应用程序定义的任务。
  8.         void Dispose();
  9.     }
复制代码



回复 使用道具 举报
诠释♂回忆 发表于 2014-3-28 11:20
建立连接时,如果执行的是把数据库的数据取回本地的方式需要用到using(关闭连接并且释放空间),如果是在线 ...

虽然不同意,还是谢谢了{:2_36:}
回复 使用道具 举报
心灵苦旅 发表于 2014-3-28 12:50
虽然不同意,还是谢谢了

好吧,我需要再学习学习
回复 使用道具 举报
诠释♂回忆 发表于 2014-3-28 13:33
好吧,我需要再学习学习

一起努力:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马