析构函数有什么用?

limengchen 2006-08-17 10:34:35
按照从多个地方看到的说法,C#中的析构函数在对象被销毁时不一定会被调用。那这样的析构函数还有什么用呢?谁会把代码放在一个说不清楚会不会被执行的地方?
...全文
307 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
limengchen 2006-09-14
  • 打赏
  • 举报
回复
不是该不该用的问题,是我的dataAdapter.Update(dataTable)该怎么执行的问题...
lincats 2006-09-14
  • 打赏
  • 举报
回复
楼主研究下堆,堆战,拖管堆之类的概念。还有GC啊,之类的东东就懂了。何时该用何时可以不用。
tshark 2006-09-14
  • 打赏
  • 举报
回复
析构还是有用的,当系统不能自动释放的时候,例如非托管就需要手动释放.当然,很多情况下客户会说哎呀我的机器慢了,我们就对他们说,没事,重启一下就好了.就这样.
chaircat 2006-09-13
  • 打赏
  • 举报
回复
MSDN有讲...还有IDispose接口...
有些资源CLR是不知道怎么去释放要你手动释放的时候你要写在析构函数或Dispose()方法里面...
比如你申请了一块非托管内存...
江城老温 2006-09-13
  • 打赏
  • 举报
回复
析构函数可以给你自己调用,提前释放资源.
sswwee 2006-09-13
  • 打赏
  • 举报
回复
干吗非要老想析构呢又不是c++
limengchen 2006-09-13
  • 打赏
  • 举报
回复
IDisposal我试过,在里面dataAdapter.Update(dataTable)时,dataTable已经变为not initialized了,根本没法update
xiaoliangwh 2006-09-12
  • 打赏
  • 举报
回复
jf
limengchen 2006-09-12
  • 打赏
  • 举报
回复
那我的StreamWriter.Close()在哪调用啊?不调用的话文件都写不完整。
snwyq 2006-08-28
  • 打赏
  • 举报
回复

地區:北京
年限:2年
技術:.Net BS开发
工資:avg>>5K + 福利,几乎不加班,工作开心,心情愉快。
公司性質:汽车门户网站。

PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加richard_wung@hotmail.com 说应聘即可!
sswwee 2006-08-28
  • 打赏
  • 举报
回复
c++析构有用c#就没什么问题了,c#不用担心内存释放的问题,这就是新一代语言(java c#)区别于c++的优势啊。
Knight94 2006-08-27
  • 打赏
  • 举报
回复
ref:
http://blog.csdn.net/Knight94/archive/2006/08/05/1023352.aspx
fattycat 2006-08-27
  • 打赏
  • 举报
回复
mark
jointan 2006-08-27
  • 打赏
  • 举报
回复
使用using语句
using(MyClass obj=new MyClass())
{
//TODO:
}
退出using语句时,析构函数会被调用
limengchen 2006-08-26
  • 打赏
  • 举报
回复
因为有一个类要使用数据库,而且同时只能有一个类使用,所以在创建类的时候要锁定数据库,类析构的时候要解锁。但如果析构函数不保证会执行的话,那怎么办?
rib06 2006-08-17
  • 打赏
  • 举报
回复
在自动垃圾回收的机制下就是没什么用,而且也不建议写析构方法,一切交给CLR去处理就好了,人工干预反而会更乱
liangge 2006-08-17
  • 打赏
  • 举报
回复
http://www.54r.cn/webcl/10143531/  
http://www.netyi.net/blog/user1/1743/archives/2005/4120.shtml 你可以看看

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧