请问dispose()的作用是什么 dispose方法用来释放非托管资源托管资源不需要显式调用,方法结束自动释放. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考:http://msdn.microsoft.com/zh-cn/library/system.idisposable.dispose(v=vs.110).aspx dispose释放非托管资源,例如文件句柄,网络连接等。托管资源出了作用域后,GC会清除。一般面向对象程序语言中有个感念叫析构函数,它在销毁对象时会被调用,C#也有,但是 对象什么时候比被GC销毁是不确定的。可以在析构函数中释放非托管资源,但是什么时候被调用就不确定了,因此引入Idisposable接口。在Dispose函数中释放非托管资源,结合using使用,已经成为事实标准了。 dataset.dispose();//也许只是继承接口 空实现return dataset;按楼上各位的意思~你试试conn.dispose();return conn;//数据库链接试试看每个继承Idisposable接口的实现可以是不一样的~我自己实现过的public Class Initerpublic void Dispose() { if (dbContext != null) { dbContext.Dispose();//释放EF } if (container != null) { container.Dispose();//释放IOC } }其他调用者using(Initer initer = new Initer())//内部有很多类,需要释放{.........} 释放非托管资源的方法,需要实现IDispose接口,这样做的好处就是可以释放非托管资源。在C#当中,析构函数释放资源也是可以的,但是因为GC的诞生,导致了一个问题就是析构函数何时调用的问题。但是对于用户而言,很多时候,释放资源等操作,是希望可以控制的,也就是不要不知道什么时候释放。因此,就出现了Dispose方法。C#为了提供dispose释放非托管资源,出现了一个using语句,就是为了简化上述操作中,直接调用dispose的操作。 告诉GC 这个资源已经没用了。具体什么时候释放由GC决定 dispose释放非托管资源。当对象出了作用域以后被GC调用,也可以自己调用释放资源。 释放非托管资源,.NET GC 管不了的那些东西,调用 dispose 通知让另外的程序去管。城管管不了的,得立马报警让警察介入。 达达们帮忙 c# windows ce 怎样通过程序启动window服务 SESSION值过期报错该如何解决?? 请问 委托(delegate) 有什么用途呢? 谢谢 一个问题请教大家...急急 怎么在程序里检测与oracle的连接已经断开。 在winform中如何让groupBox 和panel变成透明 关于revit二次开发的,sweep放样 怎么用Socket类来实现对端口的监测?? *****-----c#解析嵌套并且带有动态属性值的json数据求助----***** 关于c# 串口通信调试环境
托管资源出了作用域后,GC会清除。一般面向对象程序语言中有个感念叫析构函数,它在销毁对象时会被调用,C#也有,但是 对象什么时候比被GC销毁是不确定的。可以在析构函数中释放非托管资源,但是什么时候被调用就不确定了,因此引入Idisposable接口。在Dispose函数中释放非托管资源,结合using使用,已经成为事实标准了。
return dataset;按楼上各位的意思~你试试
conn.dispose();
return conn;//数据库链接试试看每个继承Idisposable接口的实现可以是不一样的~我自己实现过的
public Class Initer
public void Dispose()
{
if (dbContext != null)
{
dbContext.Dispose();//释放EF
} if (container != null)
{
container.Dispose();//释放IOC
}
}其他调用者
using(Initer initer = new Initer())//内部有很多类,需要释放
{.........}
在C#当中,析构函数释放资源也是可以的,但是因为GC的诞生,导致了一个问题就是析构函数何时调用的问题。但是对于用户而言,很多时候,释放资源等操作,是希望可以控制的,也就是不要不知道什么时候释放。因此,就出现了Dispose方法。C#为了提供dispose释放非托管资源,出现了一个using语句,就是为了简化上述操作中,直接调用dispose的操作。