/// <inheritdoc/> public override int GetHashCode() { var hashCode = base.GetHashCode(); hashCode = hashCode * -1521134295 + IsValueType.GetHashCode(); hashCode = hashCode * -1521134295 + Value.GetHashSafe(); hashCode = hashCode * -1521134295 + Timestamp.GetHashSafe(); hashCode = hashCode * -1521134295 + StatusCode.GetHashSafe(); hashCode = hashCode * -1521134295 + DataType.GetHashSafe(); hashCode = hashCode * -1521134295 + ValueRank.GetHashSafe(); hashCode = hashCode * -1521134295 + ArrayDimensions.GetHashSafe(); hashCode = hashCode * -1521134295 + AccessLevelEx.GetHashSafe(); hashCode = hashCode * -1521134295 + AccessLevel.GetHashSafe(); hashCode = hashCode * -1521134295 + UserAccessLevel.GetHashSafe(); hashCode = hashCode * -1521134295 + MinimumSamplingInterval.GetHashSafe(); hashCode = hashCode * -1521134295 + Historizing.GetHashSafe(); return(hashCode); }
/// <inheritdoc/> public override bool Equals(object obj) { if (!(obj is VariableNodeModel model)) { return(false); } if (IsValueType != model.IsValueType) { return(false); } if (!Utils.IsEqual(Value ?? Variant.Null, model.Value ?? Variant.Null)) { return(false); } if (Timestamp != model.Timestamp) { return(false); } if (StatusCode != model.StatusCode) { return(false); } if (!Utils.IsEqual(DataType, model.DataType)) // TODO { return(false); } if (ValueRank != model.ValueRank) { return(false); } if (ArrayDimensions.SequenceEqualsSafe(model.ArrayDimensions)) { return(false); } if (AccessLevelEx != model.AccessLevelEx) { return(false); } if (AccessLevel != model.AccessLevel) { return(false); } if (UserAccessLevel != model.UserAccessLevel) { return(false); } if (MinimumSamplingInterval.EqualsSafe(model.MinimumSamplingInterval)) { return(false); } if (Historizing != model.Historizing) { return(false); } return(base.Equals(obj)); }