Почему вывод типа терпит неудачу при вызове унаследованного метода в этом контексте?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему вывод типа терпит неудачу при вызове унаследованного метода в этом контексте?

Сообщение Anonymous »

Я сталкиваюсь с запутанной проблемой с методом цепочки и типа вывода при работе с унаследованными классами в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»