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

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

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

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

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

textual
Листинг программы
using System;
 
namespace HelloWorld
{
    class A {
        
        public void Method() {
            Console.WriteLine("Method A");
        }
        
        public int IntField = 10;
 
        public int  IntProperty { 
            get {return IntField;} 
            set{IntField=value;}
        }
 
        public A() {
            Console.WriteLine("Constructor A");//конструктору класса будет вызываться при вызове конструктора потомков
        }
    }
    class B:A {
        public B() {
            Console.WriteLine("Constructor B");
            base.Method();//Обращаемся к базовому методу из класса А
            Console.WriteLine(base.IntField);//и полю из А
            Console.WriteLine(base.IntProperty);// и к свойству из А
        }
    }
    class Program
    {
        static void Main() {
            //A a = new A();
            B b = new B();
            Console.ReadKey();
 
        }
    }
}

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


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

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

12   голосов , оценка 3.917 из 5
Похожие ответы