public override object Clone() { var f = (MultiObjectiveFitness)base.Clone(); f.Objectives = (double[])Objectives.Clone(); // cloning an array // note that we do NOT clone max and min fitness, or maximizing -- they're shared return(f); }