using ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData.Interfaces; namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData { public abstract class ComparableStructure : IComparableStructure 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(); } } }