2025-04-24 20:56:44 +08:00
|
|
|
|
using ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData.Interfaces;
|
2025-02-10 20:53:40 +08:00
|
|
|
|
|
2025-04-24 20:56:44 +08:00
|
|
|
|
namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
|
2025-02-10 20:53:40 +08:00
|
|
|
|
{
|
|
|
|
|
|
public abstract class ComparableStructure<T> : IComparableStructure<T>
|
|
|
|
|
|
where T : class
|
|
|
|
|
|
{
|
|
|
|
|
|
public abstract bool DifferentDescendants(T item);
|
|
|
|
|
|
|
|
|
|
|
|
public abstract bool DifferentItem(T item);
|
|
|
|
|
|
|
|
|
|
|
|
public bool Equals(T item)
|
|
|
|
|
|
{
|
|
|
|
|
|
return !ReferenceEquals(item, null) && !DifferentItem(item) && !DifferentDescendants(item);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override bool Equals(object obj)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Equals(obj as T);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override int GetHashCode()
|
|
|
|
|
|
{
|
|
|
|
|
|
return base.GetHashCode();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|