Я сталкиваюсь с запутанной проблемой с методом цепочки и типа вывода при работе с унаследованными классами в c#. < /p>
Я понимаю, что AddBlock определяется в классе, но, поскольку классб является экземпляром класса, я ожидал Вызовите метод, который ожидает объекта Classb. < /p>
Вот упрощенный пример: < /p>
namespace Demo
{
public class ClassA
{
public ClassA AddBlock(ClassA classA) => this;
}
public class ClassB : ClassA
{
//public ClassB AddBlock(ClassA classA) => this;
}
public class ClassC
{
public ClassC AddBlock(ClassB classB) => this;
}
class Program
{
static void Main()
{
var classB = new ClassB();
var classC = new ClassC();
var newBlockB01 = classB;
newBlockB01.AddBlock(classB);
var newBlockB02 = (ClassB)classB.AddBlock(classB);
var newBlockB03 = classB.AddBlock(classB);
classC.AddBlock(newBlockB01); // Works as expected
classC.AddBlock(newBlockB02); // Works as expected
classC.AddBlock(newBlockB03); //Does not work Error CS1503
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... is-context
Почему вывод типа терпит неудачу при вызове унаследованного метода в этом контексте? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Скрипт Python работает из командной строки, но терпит неудачу при вызове из C# в IIS
Anonymous » » в форуме C# - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Скрипт Python работает из командной строки, но терпит неудачу при вызове из C# в IIS
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-