首页 新闻 搜索 专区 学院

asp.net中using 问题

0
[已解决问题] 解决于 2012-04-19 22:47

 using( System.Drawing.Bitmap bit = new System.Drawing.Bitmap(200, 60));

看见别人这么写代码!!还不知道这个using是什么含义!!请哪位大虾指教一下!!

unbreakable的主页 unbreakable | 初学一级 | 园豆:111
提问于:2012-04-19 10:54
< >
分享
最佳答案
0

下次代码贴全了吧,using(var va){}。表示声明一个变量va,其作用域为接下来的{}语句块。作用域结束之后自动释放所有资源。此写法常见于外设资源的使用,如文件资源、数据库资源、网络资源、设备资源等等

奖励园豆:5
BLoodMaster | 初学一级 |园豆:135 | 2012-04-19 11:06
其他回答(5)
2

到“}”就回收资源。

悟行 | 园豆:12429 (专家六级) | 2012-04-19 10:59

销毁内存资源吗??

支持(0) 反对(0) unbreakable | 园豆:111 (初学一级) | 2012-04-19 11:22

@unbreakable: 嗯。以前需要写this.close()的,现在不需要写了。

支持(0) 反对(0) 悟行 | 园豆:12429 (专家六级) | 2012-04-19 11:38
0

像DataReader,Stream等资源,使用完毕后必须通过dispose方法释放,用use就免去了这一过程,使用结束后自动释放资源

轻狂の书生 | 园豆:1040 (小虾三级) | 2012-04-19 10:59
0

提供能确保正确使用IDisposable对象的方便语法。

g (Font font1 = new Font("Arial", 10.0f)) {
.. byte charset = font1.GdiCharSet;
}

File和Font是访问非托管资源(本例中为文件句柄和设备上下文)的托管类型的示例。有许多其他类别的非托管资源和封装这些资源的类库类型。所有这些类型都必须实现IDisposable接口。

按照规则,当使用 IDisposable 对象时,应在 using 语句中声明和实例化此对象。using 语句按照正确的方式调用对象上的 Dispose 方法,并(在您按照前面所示方式使用它时)会导致在调用 Dispose 时对象自身处于范围之外。在 using 块中,对象是只读的并且无法进行修改或重新分配。

using 语句确保调用 Dispose,即使在调用对象上的方法时发生异常也是如此。通过将对象放入 try 块中,并在调用 finally 块中的 Dispose,可以获得相同的结果;实际上,这就是编译器转换 using 语句的方式。前面的代码示例在编译时将扩展到以下代码(请注意,使用额外的大括号为对象创建有限范围):

wvsy | 园豆:297 (菜鸟二级) | 2012-04-19 11:12
0

能using的都是继承了IDispose接口,你可以看看资料。

对于使用非内存资源的类,完全可以自己定义一个销毁资源的方法来供程序员回收,.net推荐实现IDisposable接口(为了规范非托管资源的回收),在Dispose方法中进行回收。

Halower | 园豆:1723 (小虾三级) | 2012-04-19 14:05
0

执行完using内的代码之后,销毁using使用的资源。

Ron Ngai | 园豆:296 (菜鸟二级) | 2012-04-19 18:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册