zoukankan      html  css  js  c++  java
  • 浅析using代码块的使用

      在浏览一些质量比较好的代码的时候会发现,涉及到连接操作和关闭连接操作的时候许多程序员都选用了using代码块。

      using代码块到底有什么作用呢,下面通过具体的例子来看看。

      (1)文本文件的读操作

     1 public string ReadText()
     2         {
     3 
     4             string path = @"C:UsersAdministratorDesktopThisIsATxt.txt";
     5 
     6             using (StreamReader reader = new StreamReader(path, Encoding.UTF8))
     7             {
     8 
     9                 string Read_text = reader.ReadToEnd();
    10 
    11                 return Read_text;
    12             }
    13 
    14         }

      (2)数据库操作类

     1 public class DetialDC
     2     {
     3         string connectionString = "Data Source=PC-20160624XQSU;Initial Catalog=Animal;Integrated Security=True";
     4 
     5         SqlConnection conn;
     6 
     7         #region 数据库查询操作
     8 
     9         public DataTable doSelect()
    10         {
    11 
    12             string sql = "select * from detial";
    13 
    14             using (conn = new SqlConnection(connectionString))
    15             {
    16 
    17                 conn.Open();
    18 
    19                 SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    20 
    21                 DataSet ds = new DataSet();
    22 
    23                 da.Fill(ds);
    24 
    25                 return ds.Tables[0];
    26 
    27             }
    28         }
    29 
    30         #endregion
    31 
    32     }

      从上面两个例子可以发现,最后需要被关闭的流和数据库连接,其实例化的操作都放在了using中。

      原理就是在using语句块执行完毕之后会调用using对象的IDisposable接口的Dispose()方法。

      即使using代码块中的语句抛出异常,Dispose()方法依然会被调用,从而确保无论如何,只要离开该段语句块就一定能够释放资源。

      using代码块为编程带来了方便,避免了忘记关闭连接而带来的种种麻烦,所以也可以将using代码块称为一个“语法糖”。

  • 相关阅读:
    axios
    vue-cli-service 报错
    避免大型、复杂的布局和布局抖动
    vue 父子通信
    == 区别 === ,!= 区别 !==
    全选/取消全选
    vue 注意
    pyparsing:自定义一个属于你的语法解析器(更新中)
    《python解释器源码剖析》第11章--python虚拟机中的控制流
    collections:内建模块,提供额外的集合类
  • 原文地址:https://www.cnblogs.com/SunshineAgain/p/5710266.html
Copyright © 2011-2022 走看看