《C#编程入门与应用》—2.2.3 using 语句
2.2.3 using 语句
using 作为语句,用于定义一个范围,在此范围的末尾将释放对象。
1.使用方法
using 语句允许开发人员指定使用资源的对象应当何时释放资源。using 语句中使用的对 象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。
(1) 在 using 语句之前声明对象。
开发人员可以在using 语句之前声明对象,先声明对象,再使用using 语句。基础语法 如下:
Font font2 = new Font("Arial", 10.0f);
using (font2) { // use font2 }
(2) 在 using 语句中声明对象。
在使用 using 语句时,可以直接将声明对象的语句放在 using 中。语法如下:
using (Font font2 = new Font("Arial", 10.0f))
{
// use font2
}
(3) 可以让多个对象和 using 语句一起使用。
using 语句除了可以使用单个语句外,还可以让多个对象与 using 语句一起使用,但是必 须在 using 语句内部声明这些对象。语法如下:
using (Font font3=new Font("Arial",10.0f), font4=new Font("Arial",10.0f))
{
// use font3 and font4.
}
提示
在程序编译阶段,编译器会自动将using 语句生成为try-finally 语句,并在finally 块中调用对 象的 Dispose 方法来清理资源。所以,using 语句等效于 try-finally 语句,这就是 using 语句的实质。
2.注意事项
using 作为语句使用时,并不是可以随便使用的,在使用时需要注意以下几点:
● using 只能用于实现了IDisposable 接口的类型,禁止为不支持IDisposable 接口的类型使 用 using 语句,否则会出现编译错误。
● using 语句适用于清理单个非托管资源的情况,而多个非托管对象的清理最好用try-finally 来实现,因为嵌套的using 语句可能存在隐藏的Bug。内层using 块引发异常时,将不能 释放外层 using 块的对象资源。
● using 语句支持初始化多个变量,但前提是这些变量的类型必须相同。
● 初始化多个不同类型的变量时,可以都声明为 IDisposable 类型。
- 点赞
- 收藏
- 关注作者
评论(0)