public override bool Equals(object obj) { if (this == obj) { return(true); } IConditionStatement statement = obj as IConditionStatement; if (statement == null) { return(false); } if ((Condition == null) ? (Condition != statement.Condition) : !Condition.Equals(statement.Condition)) { return(false); } if ((Then == null) ? (Then != statement.Then) : !Then.Equals(statement.Then)) { return(false); } if ((Else == null) ? (Else != statement.Else) : !Else.Equals(statement.Else)) { return(false); } return(true); }