Heavenkiller(原创)
//overwrite Object.Equals() --- reference type realization
public override bool Equals(object _obj)
{
if( _obj==null )
return false;//因为this不可能为null
if( ! (this.GetType()==_obj.GetType()) )
return false;//类型不相等也不相等
Tree tmpObj=(Tree)_obj;
//比较引用成员
if( !Object.Equals(this.Key,tmpObj.Key) )
return false;
//比较值类型成员
if( !this.Degree.Equals(tmpObj.Degree) )
return false;
//if( !this.Height.Equals(tmpObj.Height) )
//return false;
return true;
}
//在此重载 ==,!= 后, 在以后继承的类中不必实现了
public static bool operator==(Tree _treeA,Tree _treeB)
{
return Object.Equals(_treeA,_treeB);
}
public static bool operator!=(Tree _treeA,Tree _treeB)
{
return !(_treeA==_treeB);
}
#region IComparable 成员
public virtual int CompareTo(object obj)
{
// TODO: 添加 Tree.CompareTo 实现
return 0;
}
#endregion
}
}
数据结构与算法(C#实现)系列---树(三)
本文介绍了一个名为Tree的类的实现细节,包括如何通过重写Equals方法来比较两个Tree对象是否相等,并定义了用于比较的逻辑。此外,还展示了如何重载==和!=运算符以简化对象间的比较,并提供了一个待完成的CompareTo方法用于实现对象间的排序。

被折叠的 条评论
为什么被折叠?



