static void Main(string[] args) { var differ = new ExpressionDiffer <ProperertySet>(); var old = new ProperertySet { DoubleValue = .2d, IntValue = 231, StringValue = "dsdadsa" }; var newOne = new ProperertySet { DoubleValue = .2d, IntValue = 231, StringValue = "dsdadsa1" }; Console.WriteLine(object.Equals(.2d, .2d)); var result = differ.Compare(old, newOne); Console.ReadKey(); }
public ChangeSet[] Compare(ProperertySet old, ProperertySet newOne) { var result = new List <ChangeSet>(); if (!ReferenceEquals(old, newOne)) { if (old.DoubleValue != newOne.DoubleValue) { result.Add(new ChangeSet( nameof(ProperertySet.DoubleValue), old.DoubleValue.ToString(), newOne.DoubleValue.ToString()) ); } if (old.IntValue != newOne.IntValue) { result.Add(new ChangeSet( nameof(ProperertySet.IntValue), old.IntValue.ToString(), newOne.IntValue.ToString()) ); } if (old.StringValue != newOne.StringValue) { result.Add(new ChangeSet( nameof(ProperertySet.StringValue), old.StringValue.ToString(), newOne.StringValue.ToString()) ); } } return(result.ToArray()); }