Я пытаюсь создать класс Bar , который расширяет класс Foo . Код Foo находится вне моего контроля.
Когда кто-то создает новый экземпляр Bar (записывая что-то вроде Bar x = new Bar (); ), я хочу, чтобы это инициировало вызов Foo конструктор, который принимает входной аргумент.
В основном:
class Foo {
public Foo(string message) { print("The new Foo says: " + message); }
}
class Bar : Foo {
public Bar() : base(this.GetType()) { }
}
Поэтому, когда кто-то использует new Bar () , он должен распечатать Новый Foo говорит: Bar . (Предполагая, что есть функция print , что здесь не главное.)
Вместо этого C # жалуется, потому что я пытаюсь вычислить результат в аргументах базового конструктора.
Помните, Foo вне моей досягаемости, поэтому я не могу изменить код в Foo .