Вызов конструктора с помощью конструктора in в том же классе c # и вызов базового конструктора в том же конструкторе - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть class A, который наследуется от class B.class B имеет следующий конструктор:

public class B
{
    public B(int num) { ... }
}

Класс A имеет конструктор по умолчанию .Есть ли способ реализовать конструктор в class A, который вызывает базовый конструктор из class B и вызывает конструктор по умолчанию из class A?Что-то, что может использовать base и this:

public class A : B
{
    public A() { ... }

    public A(int num) : base(num), this()
    { ... }
}

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Ваш код не компилируется : у public A() нет способа вызвать базовый B(int num) конструктор (что следует передать как num?)

Вы можетепереместите логику из A() в A(int num) и используйте цепочку конструктора для реализации A()

public class A : B
{
    public A(): this(0) {} //TODO: provide default num here

    public A(int num) : base(num)
    { 
        //TODO: implement logic here
    }
}
0 голосов
/ 19 февраля 2019

Вы можете использовать такой статический конструктор

public class B
    {
        public B(int num)
        {
            Console.Write("B");
        }
    }

    public class A : B
    {
        static A()
        {
            Console.Write("A");
        }

        public A(int num) : base(num)
        {

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...