【附详细示例代码】关于对象实现IDisposable接口,使用Dispose()方法释放资源的疑问
我很希望自己的程序实现IDisposable,这样可以使用using语句简化代码、优化程序,但是网上关于IDisposable接口实现的说明很杂,我只糊里糊涂的学来了一点,照猫画虎做出了这个示例代码,想在此请教各位,下面的代码中,释放资源的部分代码写的是否正确?我是否需要在Dispose()方法中自己手动逐个清理每个字段的值?还是说C#会自己完成这些工作?
namespace 学校
{
public class 学生 : IDisposable
{
#region 基础代码
/// <summary>
/// 构造函数
/// </summary>
public 学生()
{
}
/// <summary>
/// 对象唯一索引编号
/// 对应属性:编号
/// </summary>
int ID;
/// <summary>
/// [只读]
/// 对象唯一索引编号
/// 对应字段:ID
/// </summary>
public int 编号
{
get
{
return ID;
}
}
/// <summary>
/// 对应属性:姓名
/// </summary>
string Name;
/// <summary>
/// 对应字段:Name
/// </summary>
public string 姓名
{
get
{
return Name;
}
set
{
Name=value;
}
}
/// <summary>
/// 重写ToString方法
/// </summary>
public override string ToString()
{
StringBuilder S = new StringBuilder();
S.AppendLine( "[学生]对象 ");
S.AppendLine( "编号(ID:int): " + 编号);
S.AppendLine( "姓名(Name:string): " + 姓名);
return S.ToString();
}
#endregion
#region 扩展功能代码
#region IDisposable 成员
void IDisposable.Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{