public static Task DeepCopy(Task srcTask) { Task dstTask = new Task(); dstTask.upid = srcTask.upid; for (int i = 0; i < srcTask.reflexes.Count; ++i) { Reflex srcReflex = srcTask.reflexes[i] as Reflex; Reflex dstReflex = Reflex.DeepCopy(srcReflex); dstTask.reflexes.Add(dstReflex); } return(dstTask); }