读书人

关于Finalize()解决方案

发布时间: 2012-01-28 22:06:13 作者: rapoo

关于Finalize()
请看如下代码:
Public Class a


Protected Overrides Sub Finalize()

MyBase.Finalize()
MsgBox( "先释放基类 ")

End Sub
End Class

Public Class b
Inherits a

Protected Overrides Sub Finalize()
MyBase.Finalize()
MsgBox( "B类释放 ")
End Sub

End Class

Public Class c
Inherits b


Protected Overrides Sub Finalize()

MyBase.Finalize() '释放其基类B
MsgBox( "最后释放B的子类 ")
End Sub

End Class

public class form1
private sub button1_click()
dim aa as new c
end class
1:当我运行程序并关闭的时候,请问这个Finalize()方法的运行顺序是什么?是先运行父类的,还是先运行最下面的class c的?
2:在class a中的Finalize()方法中,代码写的是mybase.Finalize()
但是class a本身就是基类,哪里来的mybase呢?
3:class a中重写的Finalize()方法是重写的谁的?

[解决办法]
1.先运行Object的,再运行a的,再运行b的,再运行c的。
2..Net中任何类都继承自Object。
3.Object的。

读书人网 >VB Dotnet

热点推荐