Не удается неявно преобразовать тип ResponseBase в Response

Response response = new Response();

Эта строка показывает ошибку "Не удается неявно преобразовать тип ResponseBase в Response":

response = await BaseFlow.Invoke(jsonRawRequest, response);

... и это зовет:

public static async Task<ResponseBase> Invoke(JToken jsonRawRequest, ResponseBase responseBase)
        {...}

... а это класс Response:

class Response : ResponseBase
    {
    // empty
    }

... и база ответов:

public class ResponseBase
    {...}

Почему это происходит? Разве это не должно сказать "Не могу неявно преобразовать тип Response в ResponseBase" вместо другого способа arround, потому что я пытаюсь передать класс Response методу, принимающему ResponseBase? И как это исправить?

Я просматривал Интернет, и он утверждает, что я смог бы передать производный класс методу, принимающему базовый класс.

1 ответ

Решение

Проблема не в том, когда ты пытаешься пройти response в качестве параметра.

Ошибка возникает, когда вы пытаетесь присвоить результат Invoke (ResponseBase тип) к response переменная (Response тип).

Чтобы исправить это просто изменить response введите в ResponseBase:

ResponseBase response = new Response();

или использовать новый ResponseBase переменная.

Другие вопросы по тегам