public void changeDayStatus(Day d, string to) { Day newDay = d; // in case d is already converted in to switch (to) { case "past": if (!(d is Past)) { newDay = new Past(d.Number, d.Map_hq); } break; case "present": if (!(d is Present)) { newDay = new Present(d.Number, d.Map_hq); } break; default: //case "future": if (!(d is Future)) { newDay = new Future(d.Number, d.Map_hq); } break; } l_day[d.Number] = newDay; //newDay.L_activity = d.L_activity; WRITE A SET ! newDay.Report = d.Report; newDay.Outside = d.Outside; }