Без определения конструктора в производном классе по умолчанию является безпараметрический конструктор. Какой базовый класс не имеет, поэтому производный класс не имеет возможности создавать свой базовый класс (и, следовательно, сам).
Определить конструктор в производном классе, который использует класс конструктор базового:
public Derived(string foo, float bar, float foobar) : base(foo, bar, foobar) { }
Это просто проходной конструктор. Вы также можете использовать без параметров, если хотите, но вам все равно придется использовать конструктор базового класса с некоторыми значениями. Например:
public Derived() : base("foo", 1.0, 2.0) { }
Это обычный конструктор, как и любой другой, и может содержать любую логику вам нравится, но для этого нужно вызвать базовый класс только конструктор с некоторыми значениями.
Примечание: Это означает, что вы, вероятно, это не нужно вообще:
public Base derived = new Derived ("Foo", 0f, 0f);
Похоже, вы пытаетесь создать экземпляр Base
как члена из Derived
, Но Derived
является экземпляром Base
. Если вы хотите использовать Base
как пример, как, что тогда вы не хотите использовать наследование:
public class Derived { // not inheriting from Base
public Base base = new Base ("Foo", 0f, 0f);
}
Конечно, в этой точке «базы» и «производном» будет вводить в заблуждение названия, так как эти классы Wouldn Фактически, в структуре наследования.
Конструкторы не наследуются. Объявите конструктор в 'Derived', который принимает те же аргументы и вызывает базовый конструктор, используя синтаксис' public Derived (...): base (...) '. –