很久以前,我从C/C++开始,我仍然有一个确保所有资源都被正确清理的习惯。我总是确保在IDisposable类上调用Dispose,并在包含一次性对象的类中实现Dispose模式。IDisposable,它真的很重要吗
但是,在我的环境中,我或多或少是唯一这样做的人。其他人只是不明白我在做什么,认为我的代码更难理解。
他们只是创建数据库连接,打开流等没有调用关闭或处置。有时他们会在方法的末尾设置一个局部或成员变量为“Nothing”(猜测他们的背景)。
我的问题是他们的代码和我的一样好。代码随着时间的推移会创建数千个数据库连接对象。
因此,忽略任何关于代码正确性的论点,遵循指导原则等,IDiposable真的很重要?
有没有人从废弃的物品中耗尽了资源?
编辑: 感谢您的回复。有趣的是,看到有些人在不处置时有问题。这似乎很少见,但我认为GC/JIT在正常情况下保持资源使用情况良好。
我的同事和我都不会因为这个而改变行为,但是感觉很好。
关于SO的许多问题都是“奇怪的东西发生”变种。我发现其中大约一半是由于未能处置而导致的,特别是如果它们只是通过某种循环发生第二次或随后的时间。另一半是未处理的例外,顺便说一句。 – 2010-03-17 20:00:13
我已经与其他人一样使用IDisposible模式并收到了类似的反应。在这场冲突中你当然并不孤单。我恳求你不要妥协,因为你的代码“难以阅读”。只是我2美分。 – 2010-03-17 20:04:43
如果没有别的,__explicit__永远比隐式更好,不管语言如何 – 2010-03-17 20:07:48