public static bool CheckShouldRemove(SyncField field, Pair <object, object> target, BufferData data) { if (data.sent && Equals(data.toSend, data.actualValue)) { return(true); } object currentValue = target.first.GetPropertyOrField(field.memberPath, target.second); if (!Equals(currentValue, data.actualValue)) { if (data.sent) { return(true); } else { data.actualValue = currentValue; } } return(false); }