Передача управления из конструктора класса-родителя в конструктор класса-потомка - C#

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

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

Здравствуйте. Возможно ли передать управление из конструктора класса-родителя в конструктор класса-потомка? Например, есть класс Polygone. В нём конструктор:
Листинг программы
  1. //Класс Point уже определён.
  2. public Polygone(params Point[] p)
  3. {
  4. //Много кода, в том числе удаляющего повторяющиеся точки.
  5. if (p.Length <= 2)
  6. {
  7. throw new ArgumentException();
  8. }
  9. //Код, собственно создающий экземпляр класса Polygone.
  10. }
  11. }
Есть класс Triangle, наследуемый от Polygone. Можно ли при введении пользователем трёх параметров, при создании экземпляра класса Polygone, создать вместо него экземпляр класса Triangle. То есть передать управление из конструктора Polygone (базовый класс) в конструктор Triangle (дочерний класс)? Пытался что-то с приведением типов делать, но ничего не вышло.

Решение задачи: «Передача управления из конструктора класса-родителя в конструктор класса-потомка»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace HelloWorld
  4. {
  5.     class A {
  6.        
  7.         public void Method() {
  8.             Console.WriteLine("Method A");
  9.         }
  10.        
  11.         public int IntField = 10;
  12.  
  13.         public int  IntProperty {
  14.             get {return IntField;}
  15.             set{IntField=value;}
  16.         }
  17.  
  18.         public A() {
  19.             Console.WriteLine("Constructor A");//конструктору класса будет вызываться при вызове конструктора потомков
  20.         }
  21.     }
  22.     class B:A {
  23.         public B() {
  24.             Console.WriteLine("Constructor B");
  25.             base.Method();//Обращаемся к базовому методу из класса А
  26.             Console.WriteLine(base.IntField);//и полю из А
  27.             Console.WriteLine(base.IntProperty);// и к свойству из А
  28.         }
  29.     }
  30.     class Program
  31.     {
  32.         static void Main() {
  33.             //A a = new A();
  34.             B b = new B();
  35.             Console.ReadKey();
  36.  
  37.         }
  38.     }
  39. }

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


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

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

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

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

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

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