C# 无法将类型ResponseBase隐式转换为Response
这一行显示错误“无法将类型ResponseBase隐式转换为Response”:C# 无法将类型ResponseBase隐式转换为Response,c#,asp.net,visual-studio-2015,.net-4.6.1,C#,Asp.net,Visual Studio 2015,.net 4.6.1,这一行显示错误“无法将类型ResponseBase隐式转换为Response”: Response response = new Response(); class Response : ResponseBase { // empty } …它在呼唤: response = await BaseFlow.Invoke(jsonRawRequest, response); …以及响应数据库: Response response = new Response(); c
Response response = new Response();
class Response : ResponseBase
{
// empty
}
…它在呼唤:
response = await BaseFlow.Invoke(jsonRawRequest, response);
…以及响应数据库:
Response response = new Response();
class Response : ResponseBase
{
// empty
}
为什么会这样?它不应该说“不能隐式地将类型Response转换为ResponseBase”而不是相反,因为我试图将一个响应类传递给接受ResponseBase的方法吗?如何修复它
我浏览过互联网,它声称我应该能够将派生类传递给接受基类的方法。问题不在于您试图将
响应
作为参数传递
当您试图将Invoke
(ResponseBase
type)的结果分配给response
变量(response
type)时,会出现错误
要修复它,只需将response
类型更改为ResponseBase
:
public class ResponseBase
{...}
或者使用新的
ResponseBase
变量。将等待调用函数的返回值(即ResponseBase)指定给Response类型的变量。所以您尝试将父类实例分配给派生类型的变量。ahhh。非常感谢。我是盲人。当然我可以在5分钟内接受你的答案,所以-在那之前。。。非常感谢。