|
c#与c++不同在资源回收机制上.
c#不能象c++一样通过delete显示回收资源.根据书上的介绍,我自己编写了一个小程序测试资源回收.请问大虾我采用单步调试,就是看不到析构函数是什么时候调用的.大家请给个答案.
我的程序如下
/// <summary>
/// Class2 的摘要说明。
/// </summary>
public class Class2 : IDisposable
{
public Class2()
{
//
// TODO: 在此处添加构造函数逻辑
//
Console.WriteLine(\"Class2 is created!\");
}
~Class2()
{
Dispose();
Console.WriteLine(\"Class2 is destroyed!\");
}
//abstract public int change();
public virtual void Dispose()
{
if (!_dispose)
{
try
{
}
finally
{
_dispose = true;
GC.SuppressFinalize(this);
}
}
}
private bool _dispose = false;
}
class Class1
{
public Class1()
{
using (Class2 s2 = new Class2())
{
}
Console.WriteLine(\"Class1 is created!\");
}
~Class1()
{
Console.WriteLine(\"Class1 is destroyed!\");
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
Class1 c = new Class1();
}
}
}
} |
|