Во время рефакторинга какого-то кода я столкнулся с этой странной ошибкой компиляции:
Вызов конструктора должен быть динамически отправлен, но не может быть потому, что он является частью инициализатора конструктора. Подумайте о том, как использовать динамические аргументы.
Это происходит при попытке вызвать базовые методы/конструкторы, которые принимают динамические аргументы. Например:
class ClassA
{
public ClassA(dynamic test)
{
Console.WriteLine("ClassA");
}
}
class ClassB : ClassA
{
public ClassB(dynamic test)
: base(test)
{
Console.WriteLine("ClassB");
}
}
Он работает, если я передаю аргумент object
, например:
public ClassB(dynamic test)
: base((object)test)
Итак, я немного смущен. Почему я должен положить этот неприятный бросок - почему компилятор не может понять, что я имею в виду?