я вызову base.Clone - мне вернётся Shape. Его потом кастить в класс потомка и дозаполнять недостающие поля?
Я тебе показал
Как вариант: class Shape{ public int X {get;set;} public int Y {get;set;} protected Shape Fill(Shape newObj, Shape source){ newObj.X = source.X; newObj.Y = source.Y; return newObj; } } class ThreeDShape : Shape { public int Z {get;set;} public object Clone() => Fill(new ThreeDShape(), this); private ThreeDShape Fill(ThreeDShape newObj, ThreeDShape source){ base.Fill(newObj, source); newObj.Z = source.Z; return newObj; } } }
Обсуждают сегодня