public override bool Equals(object obj) { if ((obj as TaskState) != null) { TaskState other = obj as TaskState; return(task.name.Equals(other.task.name) && progressState.Equals(other.progressState)); } else { throw new System.Exception("It tried comparison with different format"); } }