public virtual object Clone() { try { var myobj = (Species)(base.MemberwiseClone()); myobj.I_Prototype = (Individual)I_Prototype.Clone(); myobj.F_Prototype = (Fitness)F_Prototype.Clone(); myobj.Pipe_Prototype = (BreedingPipeline)Pipe_Prototype.Clone(); return(myobj); } catch (Exception) { throw new ApplicationException(); } // never happens }