/*
* 由SharpDevelop创建。
* 用户: yangkaizhang
* 日期: 2012/12/2
* 时间: 16:41
*
* 实现IDisposable类,实现判断是否调用finalizel终结器
*/
using System;
public class MyResoure:IDisposable
{
private bool disposed = false;
public void Dispose()
{
Dispose( true);
}
public void Close()
{
Dispose( true);
}
~ MyResoure()
{
Dispose( false);
}
private void Dispose( bool disposing)
{
if (! this.disposed)
{
if (disposing)
{
Console. WriteLine( "释放托管资源,调用引用对象的Dispose()方法");
}
Console. WriteLine( "释放本身所使用的非托管资源");
disposed = true;
if (disposing)
{
GC. SuppressFinalize( this); //阻止终结器调用
}
}
}
}
namespace dispose
{
class Program
{
public static void Main( string[] args)
{
//using(MyResoure mr = new MyResoure())
//{
// Console.Write("调用mr做一些事");
//}
MyResoure mr = new MyResoure();
try
{
Console. Write( "调用mr做一些事");
} finally
{
mr. Dispose();
}
Console. ReadKey( true);
}
}
}
* 由SharpDevelop创建。
* 用户: yangkaizhang
* 日期: 2012/12/2
* 时间: 16:41
*
* 实现IDisposable类,实现判断是否调用finalizel终结器
*/
using System;
public class MyResoure:IDisposable
{
private bool disposed = false;
public void Dispose()
{
Dispose( true);
}
public void Close()
{
Dispose( true);
}
~ MyResoure()
{
Dispose( false);
}
private void Dispose( bool disposing)
{
if (! this.disposed)
{
if (disposing)
{
Console. WriteLine( "释放托管资源,调用引用对象的Dispose()方法");
}
Console. WriteLine( "释放本身所使用的非托管资源");
disposed = true;
if (disposing)
{
GC. SuppressFinalize( this); //阻止终结器调用
}
}
}
}
namespace dispose
{
class Program
{
public static void Main( string[] args)
{
//using(MyResoure mr = new MyResoure())
//{
// Console.Write("调用mr做一些事");
//}
MyResoure mr = new MyResoure();
try
{
Console. Write( "调用mr做一些事");
} finally
{
mr. Dispose();
}
Console. ReadKey( true);
}
}
}