C#里using的作用------释放资源

很高兴今天看到一个可以拿出来分享的知识点,那就是using的使用。

其实关于using的作用,我想大家最多的用在引入命名空间。:)其实我在这之前也跟大家一样,不过今天在看一个小例子后,则让我产生了疑问。好拉,我先把代码附上吧。

不知道上面的程序有没有一处让你比较困惑的呢,好拉,我就不卖关子了,我不懂的那一处如下:

using (StreamReader sr = new StreamReader("TestFile.txt"))

{...}

一开始我以为是引入命名空间什么的,不过带着怀疑的态度,我到Q群里提出我自己的疑问。好在在他们的帮助下,让我纠正了我之前的错误想法。其实我们在连接数据库的时候也经常会使用到using的语法,类似下面这句:
using (SqlConnection conn = new SqlConnection(source))
{
//code
}

千万不要以为任何地方的实例化都可以这样使用在using块里的哦,一般是在需要自动释放资源的地方才会用到。其实说需要自动释放资源,可能大家也不是很理解。这样说吧,你想要能这样使用using块的话,你需要保证满足下面一点:

(1)此类实现了接口IDisposable(这个接口只有一个方法void Dispose()),当这个类在using中实例化的时候,using代码块结束时会自动调用这个类中实现了接口IDisposable的Dispose()方法。Dispose()方法中常用来做些释放资源的动作

看看下面的一个简单的例子:

这里输出的结果是:

Disposable is open!
Disposable is close!
Disposable is none!

好拉,今天的执笔就到此为止,谢谢大家!



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值