Я написал в комментарии: Моя ставка в том, что Piece
имеет конструктор (требующий параметров), который вы нам не показали, поэтому он жалуется, что в базовом классе нет подходящего конструктора.
ОП подтвердил, что именно в этом и была проблема. Класс Piece
имеет конструктор, принимающий два int
с. Итак, позвольте мне объяснить ...
Если вы пишете класс без каких-либо конструкторов, ваш класс получает конструктор по умолчанию без параметров. Если вы добавите конструктор, то этот конструктор по умолчанию не будет добавлен - если вы хотите его, вам нужно написать его самостоятельно.
Цель конструктора - сказать, какие значения должны быть указаны при создании этого класса.
Проблема с кодом в вопросе заключается в том, что конструктор производного класса не указывает, какой конструктор базового класса использовать, и поскольку базовый класс не имеет конструктора по умолчанию, оператор недопустим.
Вы можете сделать конструктор действительным вот так ...
public Pawn()
: base (1, 2)
{
Который будет использовать конструктор базового класса, передавая значения 1 и 2 двум int
параметрам конструктора базового класса (возможно, не то, что вам нужно, но я демонстрирую ваши опции). Или вы можете добавить параметры в ваш Piece
конструктор и передать имена этих переменных в:
public Pawn(not first, int second)
: base (first, second)
{
из сообщения об ошибке, похоже, что они будут называться StepsLeft, StepsRight.
Или вы можете добавить конструктор по умолчанию в базовый класс (если это приемлемо), и в этом случае нет необходимости изменять код Pawn
.
Но вы не можете передать свои свойства или поля в базовый конструктор, потому что ваш класс еще не создан!