• using 释放资源


    我们知道使用C#程序访问数据库资源需要几个步骤:创建连接,打开连接,访问数据库,关闭连接,基本架构如下:

    SqlConnection conn = new SqlConnection(connString)
    try 
    {
      conn.Open();
    //省略访问数据库代码..
    }
    catch (Exception ex)
    {
      throw ex;
    }
    finally
    {
      conn.Close();
    }

    数据库连接通常建立在通常有限的服务器资源,所以释放之后要及时关闭。

    在代码中,finally块中调用Close()方法释放连接,确保即使没有异常发生,连接诶也能被释放。

    using 语句两个作用:

    作为关键字,using可以导入命名空间。

    作为C#语句,using可以释放对象的占有的内存资源。

    基本语法如下:

    using(SqlConnection conn = new SqlConnection(connString))

     {

      //数据库代码操作

    }

    using语句允许用户定义一个范围,并在范围末尾处释放对象。

    using可以主动释放的对象都需要实现IDisable接口。

    即使都实现了IDisable接口,也没有必要全部使用using。我们只对那些对系统性能有重要影响的对象进行using限定,而其他对象可以交给垃圾回收器处理。

    (1)此类实现了接口IDisposable(这个接口只有一个方法void Dispose()),当这个类在using中实例化的时候,using代码块结束时会自动调用这个类中实现了接口IDisposable的Dispose()方法。Dispose()方法中常用来做些释放资源的动作

    看看下面的一个简单的例子:

    using System;  
      
    class Program  
    {  
        public static void Main(string[] args)  
        {  
            using (Test test = new Test())  
            {  
                Console.WriteLine("Disposable is open!");  
            }  
      
            Console.WriteLine("Disposable is none!");  
            Console.ReadKey();  
        }  
    }  
      
    public class Test:IDisposable  
    {  
     
        #region IDisposable 成员  
      
        public void Dispose()  
        {  
            Console.WriteLine("Disposable is close!");  
        }  
     
        #endregion  
    }
    输出结果如下:
    Disposable is open!
    Disposable is close!
    Disposable is none!
     
    更多详情请关注 http://www.cnblogs.com/baixingqiang/
  • 相关阅读:
    洛谷P1169 [ZJOI2007]棋盘制作
    洛谷P4147 玉蟾宫
    洛谷P3068 [USACO13JAN]Party Invitations S
    洛谷P3594 [POI2015]WIL-Wilcze doły
    洛谷P2564 [SCOI2009]生日礼物
    洛谷P4296 [AHOI2007]密码箱
    洛谷P2421 [NOI2002]荒岛野人
    洛谷P3990 [SHOI2013]超级跳马
    MySQL 默认引擎 默认编码
    Python 换源
  • 原文地址:https://www.cnblogs.com/baixingqiang/p/5473516.html
Copyright © 2020-2023  润新知