大佬教程收集整理的这篇文章主要介绍了析构函数何时在ASP.NET中调用C#类?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class MyClass { public MyClass() { //Do the work } ~MyClass() { //Destructor } }
然后我从ASP.NET项目创建我的类的实例,如下所示:
if(true) { MyClass c = new MyClass(); //Do some work with 'c' //Shouldn't destructor for 'c' be called here? } //ConTinue on
我希望在if范围的末尾调用析构函数,但它永远不会被调用.我错过了什么?
见http://msdn.microsoft.com/en-us/library/system.idisposable.aspx
你所谓的析构函数更好地称为终结器.
以下是使用IDisposable的方法.请注意,不会自动调用Dispose();您可以做的最好的事情就是使用using会导致调用Dispose(),即使在使用块到达结尾之前有异常.
public class MyClass: IDisposable { public MyClass() { //Do the work } public void Dispose() { // Clean stuff up. } }
然后你可以像这样使用它:
using (MyClass c = new MyClass()) { // Do some work with 'C' // Even if there is an exception,c.Dispose() will be called before // the 'using' block is exited. }
如果需要,您可以自己显式调用.Dispose().唯一的用途是当执行因任何原因离开using块时自动调用.Dispose().
有关详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/yh598w02%28v=vs.110%29.aspx
基本上,上面的使用块相当于:
@H_612_2@myClass c = new MyClass(); try { // Do some work with 'C' } finally { if (c != null) ((IDisposablE)C).Dispose(); }以上是大佬教程为你收集整理的析构函数何时在ASP.NET中调用C#类?全部内容,希望文章能够帮你解决析构函数何时在ASP.NET中调用C#类?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。