1.使用using释放资源
using语句有二个关键字
>>作为关键字,using可以导入命名空间
>>作为C#语句,using可以释放对象占用的内存资源
语法:
using(SqlConnection conn=new SqlConnection("data source=.;initial catalog=MySchool;uid=sa"))
{
//数据库操作代码........
}
using语句允许用户定义一个范围,并在范围末尾释放对象!
Using释放的是托管资源还是非托管资源?
解析:非托管,C#应用托管到.NET Framework.但是他可以释放非托管资源。
1.using用法:
有人问,什么样的的语句可以使用using管理??
解析:稀缺的资源,才需要using管理。
接着有人问:what is less resource ?
例如:Connection对象,IO流。
02.Dispose方法会自动调用Close()
要想让一个类型可以通过using管理,该类型或者父类必须实现了IDisposable接口。
using(SqlConnection con=new SqlConnection)
{
//本质上自动调用了Dispose方法
}

2.1.close()和dispose()区别?
解析:close()只是关闭连接,但是通道没有销毁,dispose()不仅把连接给关闭了,而且把通道也给销毁了。
1.使用using释放资源的更多相关文章
- using 释放资源
我们知道使用C#程序访问数据库资源需要几个步骤:创建连接,打开连接,访问数据库,关闭连接,基本架构如下: SqlConnection conn = new SqlConnection(connStri ...
- COCOS2D 释放资源的最佳时机
有场景A跟场景B,场景A是当前场景,场景B是将要替换的新场景. 那么A场景的资源释放最佳时机是在什么时候呢? 这是释放资源的代码(注意要按这个顺序释放): 1 2 3 4 CCAnimationCac ...
- C++异常(exception)第三篇-------如何释放资源(没有finally语句)
问题: C++中没有finally,那么应该在哪里关闭资源? C++的try{}catch(){},为什么没有finally{}块来释放资源? 如类中的一个方法,局部变量 File * file=NU ...
- using 自动释放资源示例
我们在使用SqlConnection的时候可以加入using,那么在using语句结束后就会自动关闭连接.那么这种情况是怎么是实现的呢?我们能够自己写一个类似于SqlConnection的类来让usi ...
- c#:使用using关键字自动释放资源未必一定就会有明显好处
public string ToXML() { string strXml = string.Empty; try { MemoryStream ms = new MemoryStream(); Xm ...
- Spark2 jar包运行完成,退出spark,释放资源
import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache.spark ...
- C#继承IDisposable释放资源
public class CDisposable : IDisposable { //析构函数,编译后变成 protected void Finalize(),GC会在回收对象前会调用调用该方法 ~C ...
- 【数据库】java链接jdbc 释放资源
/* * 编写快速 入门的jdbc 程序 : * * 1. 先导入 具体的驱动jar包 * 2. 编写一个类 , 写jdbc 的程序 * * 具体的编写 java类的 代码的 ...
- java7(3)——增强的catch之自动释放资源
跟mutilcatch一样,java7提供了自动释放资源的方法,但还是很少看到人使用,估计是麻烦去重写close方法.不过jdk内部一些类已经改成使用增强的catch来释放资源的写法,所以我们有必要了 ...
- C# 释放资源的规范写法
static class CSharp_3 { /* ---------------------------------------- * 以下学习资源的释放:IDispose和析构函数 * 1.ID ...
随机推荐
- Vue.js——60分钟快速入门
Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们 ...
- windows 80 端口占用
1. cmd 2. regidit 3. 注册表 KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP'右边有一个'start'的DWORD ...
- JavaScript强化教程——jQuery UI API 类别
---恢复内容开始--- 主要介绍:JavaScript强化教程—— jQuery UI API 类别 jQuery UI 在jQuery 内置的特效上添加了一些功能.jQuery UI 支持颜色动 ...
- jsom sharepoint 2010 循环获取多个list的item值
<script type="text/javascript"> // <![CDATA[ var chongdianbaId; var elm = documen ...
- Android HTTP实例 发送请求和接收响应
Android HTTP实例 发送请求和接收响应 Android Http连接 实例:发送请求和接收响应 添加权限 首先要在manifest中加上访问网络的权限: <manifest ... & ...
- 检查sqlite数据库完整性
最近遇到一个问题,用户数据丢失,拿到用户数据库文件以后,发现数据库损坏. database disk image is malformed 因此希望可以找到一种方法,可以检测出来数据库是否损坏,经过g ...
- 在Json解析过程中,我为什么用object1.optInt ,和 object1.optString
今天在做Json解析的时候,出现了一段代码没执行的问题,于是找了一下原因: 1.原代码是: 发现 红色的一句 没有执行,查看控制台发现了异常 2.修复bug ,正确的代码为 3.总结 ...
- Android java传递int类型数据给C
本文根据<Android jni简便开发流程>中的开发流程来实现一个java传递int类型数据给C 新建项目,进行简单的布局 <LinearLayout xmlns:android= ...
- 3D Touch介绍:电子秤App与快捷操作
随着iPhone6s与6s plus的到来,苹果给我们展现了一种全新的交互方式:重按手势.你可能知道,这个特性已经在Apple Watch和MacBook上推出了,不过那时叫Force Touch,就 ...
- 【代码笔记】iOS-将log日志保存到文件
代码: #import "AppDelegate.h" #import "RootViewController.h" @implementation AppDe ...