using System.Collections.Generic;
public static void Main()
Console.WriteLine(x.Changed());
Console.WriteLine(x.Changed());
Console.WriteLine(x.Changed());
Console.WriteLine(x.Changed());
public int MyProp1 {get; set;}
public string MyProp2 {get; set;}
public decimal MyProp3 {get; set;}
private string _Snapshot {get; set;}
private bool _TrackingChanges {get; set;}
public void TrackChanged() {
this._TrackingChanges = true;
this._Snapshot = this.GetSnapshot();
private string GetSnapshot() {
return $"{MyProp1},{MyProp2},{MyProp3}";
return this._TrackingChanges && !this.GetSnapshot().Equals(this._Snapshot, StringComparison.InvariantCulture);