Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Noname User
0 / 0 / 1
Регистрация: 09.07.2016
Сообщений: 71
1

Вызов базового конструктора с параметрами из дочернего класса

15.01.2018, 18:36. Просмотров 912. Ответов 4
Метки нет (Все метки)

Всем привет.
Есть базовый класс, у которого есть конструктор с параметром. Создал дочерний класс без конструктора с параметром. Объявляю переменную дочернего класса с помощью конструктора с параметром. По идее должен вызываться базовый конструктор с параметром, но компилятор выдаёт ошибку "Объект не содержит конструктор, который принимает аргументы 1".
В чём может быть проблема?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2018, 18:36
Ответы с готовыми решениями:

Список дочернего класса привести к списку базового класса
Детский вопрос, но все же. есть классы: class Base { public...

Как обратиться из конструктора базового абстрактного класса к свойству-массиву класса наследника
Добрый день. Подскажите как обратиться из конструктора базового абстрактного...

Можно ли не передавать значения из конструктора дочернего класса в базовый
У меня есть абстрактный класс (пусть будет A), от которого наследуются 4 класса...

Вызов метода базового класса
public class BaseClass { public virtual void Foo() { Console.WriteLine...

Вызов метода наследика с базового класса
Здравствуйте. Подскажите, как в базовом классе можно вызвать метод наследника,...

4
Diamante
1307 / 1027 / 650
Регистрация: 14.08.2016
Сообщений: 3,557
Завершенные тесты: 1
15.01.2018, 18:43 2
Цитата Сообщение от Noname User Посмотреть сообщение
В чём может быть проблема?
в
Цитата Сообщение от Noname User Посмотреть сообщение
дочерний класс без конструктора с параметром
но
Цитата Сообщение от Noname User Посмотреть сообщение
Объявляю переменную дочернего класса с помощью конструктора с параметром.
Цитата Сообщение от Noname User Посмотреть сообщение
По идее должен вызываться базовый конструктор с параметром
не должен, он должен вызвать конструктор своего класса с необходимой сигнатурой, а его нет...
0
kolorotur
Эксперт .NET
10496 / 8683 / 2160
Регистрация: 17.09.2011
Сообщений: 14,901
Завершенные тесты: 1
15.01.2018, 18:44 3
Цитата Сообщение от Noname User Посмотреть сообщение
По идее должен вызываться базовый конструктор с параметром
Конструктор, грубо говоря, не наследуется.
Если в базовом классе нет конструктора по умолчанию, то конструктор дочернего класса должен вызывать базовый конструктор с параметром (параметрами) и передавать в них какие-нибудь значения.
0
Noname User
0 / 0 / 1
Регистрация: 09.07.2016
Сообщений: 71
15.01.2018, 18:55  [ТС] 4
У меня есть конструктор без параметров в базовом классе. Пойду попробую сделать всё заново, если при таком раскладе, как говорит Diamante, должно всё работать, вдруг я накосячил где-нибудь.
0
KIKO KUTS
17 / 21 / 15
Регистрация: 10.01.2018
Сообщений: 57
Завершенные тесты: 1
15.01.2018, 19:23 5
Лучший ответ Сообщение было отмечено Noname User как решение

Решение

Нет, он вызываться не должен. Все работает правильно.
Для вызова базового конструктора с параметром нужно создать конструктор с параметром для дочернего класса, который будет передавать этот параметр на уровень выше:
C#
1
2
3
4
5
6
7
8
9
10
11
class A
    {
        public A(int value) { this.value = value; }
 
        private int value;
    }
 
    class B : A
    {
        public B(int value) : base(value) { }
    }
1
15.01.2018, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2018, 19:23

Вызов метода базового класса игнорируя переопределенный метод в производном классе
Как вызвать метод базового класса игнорируя переопределенный метод в...

Вызов метода дочернего класса из базового
Привет всем. Ни как не могу понять как позволить базовому классу вызвать метод...

Вызов переопределенного метода класса наследника из базового класса
Предположим есть два класа: public class A { /* ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru