using (SQLBase MyBase = new SQLBase()) 高手帮解释下

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:57:28
public DataSet BindList(SQLModel s_model)
{
using (SQLBase MyBase = new SQLBase())
{
return MyBase.ReturnDataSet(s_model);
}
}

这是 ASP。NET 其中一段程序
高手帮解释下这个using (SQLBase MyBase = new SQLBase())

将USING()中声明的变量,作用域限制在uing()『』这个大括号中。
using其实是一个符合语句,它实现了idispose接口。

using (SQLBase MyBase = new SQLBase())
{
return MyBase.ReturnDataSet(s_model);
}
楼主的程序中,mybase的作用域只在{}内,等程序执行到}时,mybase会自动销毁。因为它实现了Idisponse接口。
一般情况下,对“继需”资源使用这种方式,比如说,数据库连接。
一定要在使用完后释放。所采用using方式。

所有实现了IDisposable接口的类均可以采用using语句.
该using语句和头问的using指令是有区别的.
这里的意思就是在using后的括号中实例化了,生存期在using的大括号区间.当程序流执行到using的}括号后,运行时就会调用在using后括号中实例化的对象的Dispose方法,通知以回收内存资源.
只讲了一个大概,详细你可以查MSDN上相关内容.

这种方式一个好处是,可以避免你忘了调用DISPOSE方法.
比如在数据库连接时,一旦你忘记DISPOSE,在SQL连接池中该连接将一直占用资源,会造成服务器负担,在调用DISPOSE后资源将被适时释放.