《C#编程入门与应用》—2.2.3 using 语句

举报
清华大学出版社 发表于 2019/10/11 16:10:44 2019/10/11
【摘要】 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第二章,第2.2.3节,作者是李 鑫 祝惠娟。

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 类型。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。