代码如下:namespace logistics.EntityDAO
{
/// <summary>
/// ProductTypeEntityDAO的摘要说明。
/// </summary>
public class ProductTypeEntityDAO: IEntityDAO
{
//private static EntityData EntityPrototype=null;
private DBCommon db;
public ProductTypeEntityDAO()
{
db=new DBCommon();
db.Open();
}
public ProductTypeEntityDAO(DBCommon cdb)
{
this.db=cdb;
} public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(true);
} protected virtual void Dispose(bool disposing)
{
if (! disposing)
return; // we're being collected, so let the GC take care of this object
db.Close();
}
}
} 以前给的在那里也坚果类似的写法,像这种方法对象建立的时候自动建立连接,而连接的释放却要等到对象被销毁的时候才会释放,这段时间是否会一只占用连接?再加上垃圾收集器是系统控制的GC.SuppressFinalize(true);是乎没有实际的意义只是做一个标记而已。像上面的这种写法适合在哪些情况下使用?
{
/// <summary>
/// ProductTypeEntityDAO的摘要说明。
/// </summary>
public class ProductTypeEntityDAO: IEntityDAO
{
//private static EntityData EntityPrototype=null;
private DBCommon db;
public ProductTypeEntityDAO()
{
db=new DBCommon();
db.Open();
}
public ProductTypeEntityDAO(DBCommon cdb)
{
this.db=cdb;
} public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(true);
} protected virtual void Dispose(bool disposing)
{
if (! disposing)
return; // we're being collected, so let the GC take care of this object
db.Close();
}
}
} 以前给的在那里也坚果类似的写法,像这种方法对象建立的时候自动建立连接,而连接的释放却要等到对象被销毁的时候才会释放,这段时间是否会一只占用连接?再加上垃圾收集器是系统控制的GC.SuppressFinalize(true);是乎没有实际的意义只是做一个标记而已。像上面的这种写法适合在哪些情况下使用?
解决方案 »
- 网站简繁转换疑问
- ASP.NET Cookie 问题
- 子窗口和父窗口之间的值传递问题?
- 高分求教添加删除确认按钮代码。
- 如何让dropdownlist显示对应数据库的值的那一项,而不是默认第一项?
- asp.net里怎样欠入另一张asp.net叶面
- 为什么我的一段代码中一有关于FSO的东西就不能在服务器上运行!而去掉就可以了!
- 芝麻点点网的自动登录原理?
- dropdownlist 為甚麼運行的時候總在最前面呢,
- 找不到*.js库?现在把信息发布了,在定义输入规则的时候定义了判断输入信息的控件,可是在本地编译执行的时候没有问题,放在网上就会出现
- 关于数据绑定的问题,在线等,急!谢谢啊
- 关于缺省焦点的问题, 为什么缺省焦点总在第一个按钮?
使用的时候用
using(ProductTypeEntityDAO xxx=new ProductTypeEntityDAO())
{
xxx.
}
这样using结束就会自动释放
{
///使用类
}
//到这里,dispose方法机已经执行了,连接已经处理了
if (! disposing)
return; // we're being collected, so let the GC take care of this object这句的作用是什么?好像没有意义,是否是如果这时GC以近启动了db在这时就已经被释放掉了,所以不再需要db.Close()??