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