/*
* 由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);
}
}
}