using 语句定义一个范围,在此范围的末尾将自动释放对象,这样就不会占用太多的资源

来源:互联网 发布:linux查看服务器连接数 编辑:程序博客网 时间:2024/05/16 06:29
using 语句定义一个范围,在此范围的末尾将处理对象。
using (expression | type identifier = initializer) statement
其中:
expression
希望在退出 using 语句时调用 Dispose 的表达式。
type
identifier 的类型。
identifier
type 类型的名称或标识符。定义一个以上 type 类型的 identifier 是可以的。在每一个 identifier = initializer 的前边都有一个逗号。
initializer
创建对象的表达式。
statement
嵌入的语句或要执行的语句。
备注
在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。
实例化的对象必须实现 System.IDisposable 接口。
示例
// cs_using_statement.cs
// compile with /reference:System.Drawing.dll
using System.Drawing;
class a
{
public static void Main()
{
using (Font MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f))
{
// use MyFont and MyFont2
} // compiler will call Dispose on MyFont and MyFont2

Font MyFont3 = new Font("Arial", 10.0f);
using (MyFont3)
{
// use MyFont3
} // compiler will call Dispose on MyFont3

}
}


Asp.net实例
数据访问层:

public class SqlCommon :IDisposable//在这里加上IDisposable
    {
        public SqlCommon()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

     

        #region 定义一种释放分配的非托管资源的方法
        public void Dispose()
        {
            Dispose(true);           
            GC.SuppressFinalize(true);
        }

        protected virtual void Dispose(bool disposing)
        {
               
        }
        #endregion
    }


逻辑层:
using(DA.Common.SqlCommon _SqlCommon=new DA.Common.SqlCommon())
            {
                return _SqlCommon.DetailTable(Id,a_TableName);
            }