protected override ulong CalculateLongHashCode() { Name.CheckDirty(); var result = base.CalculateLongHashCode() ^ Name.GetLongHashCode(); if (Range != null) { Range.CheckDirty(); result ^= Range.GetLongHashCode(); } if (Constraint != null) { Constraint.CheckDirty(); } if (!Values.IsNullOrEmpty()) { foreach (var value in Values) { value.CheckDirty(); result ^= value.GetLongHashCode(); } } if (!Operators.IsNullOrEmpty()) { foreach (var op in Operators) { op.CheckDirty(); result ^= op.GetLongHashCode(); } } return(result); }