Создание объектов на основе уже существующих - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Есть список объектов
Листинг программы
  1. List<classA> lst = new List<classA>();
В котором хранятся список его наследников с со своими параметрами
Листинг программы
  1. lst.Add(new classB("agr1", "agr2", "agr3");
  2. lst.Add(new classC("agr1", "agr2", "agr3");
  3. lst.Add(new classD("agr1", "agr2", "agr3");
Список наследников может быть произвольным (полностью состоять из одного наследника или из рандомных наследников класса родителя) Задача заключается в создание новых объектов в
Листинг программы
  1. List<classA> lst2 = new List<classA>();
на основе уже существующих в первом списке Пробовал в классе родителя переопределять конструктор, где в качестве obj выступает наследник от класса родителя
Листинг программы
  1. public classA(classA obj)
  2. {
  3. this.arg1 = obj.arg1;
  4. this.arg2 = obj.arg2;
  5. this.arg3 = obj.arg3;
  6. }
и добавлять новый объект во второй список
Листинг программы
  1. lst2.Add(new classA(lst[i]));
Всё работает, но проблема в том, что создается не наследник, а класс родителя. Есть ли идеи как можно реализовать создание класса наследника на основе уже существующего и добавления его во второй список?

Решение задачи: «Создание объектов на основе уже существующих»

textual
Листинг программы
  1. ClassA a = new ClassB(....);
  2. ClassB item = a as ClassB;
  3. if(item != null){
  4.  //работаем
  5. }
  6. ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы