无法将类型 ResponseBase 隐式转换为 Response

Cannot implicitly convert type ResponseBase to Response

Response response = new Response();

这是显示错误的行 'Cannot implicitly convert type ResponseBase to Response':

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

...它正在调用:

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

...这是 响应 class:

class Response : ResponseBase
    {
    // empty
    }

...以及 ResponseBase:

public class ResponseBase
    {...}

为什么会这样?它不应该说 'Cannot implicitly convert type Response to ResponseBase' 而不是相反,因为我正在尝试将 class 的 Response 传递给接受 ResponseBase 的方法吗?以及如何修复它?

我浏览了互联网,它声称我可以将派生的 class 传递给接受基 class. 的方法

问题不在于您尝试将 response 作为参数传递时。

当您尝试将 InvokeResponseBase 类型)的结果分配给 response 变量(Response 类型)时出现错误。

要修复它,只需将 response 类型更改为 ResponseBase:

ResponseBase response = new Response();

或使用新的 ResponseBase 变量。