Передавать не ссылку, а объект - C#
Формулировка задачи:
Вообщем:
У меня есть интерфейс Int:
Есть классы InhInt1 и InhInt2:
Есть программа:
Я хочу изменять только в lInt, но не в ltInt. Как это возможно сделать? Может каким списком классов?
public interface Intr { double Length { get; set; } string Name { get; set; } List<Point> GetPoints(); }
public class InhInt1 : Intr { public List<int> GetPoints() { return null; } public double Height { get; set; } public double Length { get; set; } public string Name { get; set; } public InhInt1() { Height = 10; Name = "Прямая"; Length = 10; } } public class InhInt2 : Intr { public List<int> GetPoints() { return null; } public double Width { get; set; } public double Length { get; set; } public string Name { get; set; } public InhInt2() { Width = 100; Name = "Косая"; Length = 10; } }
int Main() { List<Intr> lInt = new List<Intr>(); List<Intr> ltInt = new List<Intr>(); int whatToAdd = 1; ltInt.Add(new InhInt1()); ltInt.Add(new InhInt2()); lInt.Add(ltInt[whatToAdd]); Console.WriteLine(ltInt[whatToAdd].Length); lInt[0].Length = 100; Console.WriteLine(ltInt[whatToAdd].Length); }
Решение задачи: «Передавать не ссылку, а объект»
textual
Листинг программы
public class InhInt1 : Intr, ICloneable public class InhInt2 : Intr, ICloneable