我有一个基类:转换对象类型
public class BaseResponse
{
public int StatusCode { get; set; }
public string ErrorMessage { get; set; }
public int ErrorCode { get; set; }
}
然后我有从基类派生的类:
public class AddAccountResponse : BaseResponse
{
public string AcctNum { get; set; }
}
public class AddCustomerResponse : BaseResponse
{
public string FullName { get; set; }
}
当发生错误时我有一个返回BaseResponse的方法。
转换/铸造从基地到预期结果类型的响应的最佳方式是什么?例如:
public AddCustomerResponse PleaseAddMyCustomer(CustomerRequest customerReq)
{
AddCustomerResponse response;
if (restResponse.StatusCode != HttpStatusCode.OK)
{
...
BaseResponse base = GetErrorResponse(restResponse);
return (response.GetType(response))base; <-----
}
}
我知道我可以:
response = new AddAccountResponse()
{
StatusCode = base.StatusCode
...
}
return response;
请原谅我的simplictic /而愚蠢的例子,但我想创建一个基本的例子。
如果你希望一个静态类型只投给'typeof运算(ThatType)'。如果你想要一个动态类型是另一个问题。 – BlargleMonster
如果您问如何将基类转换为派生类,则可以使用['is'和'as'关键字](https://msdn.microsoft.com/zh-cn/library/cc488006。 ASPX)。 – Kupiakos
好吧,我会有多种方法,我试图弄清楚if(restResponse.StatusCode!= HttpStatusCode.OK) {}之间的代码如果不在响应类型中,它们可以保持相同和基本相同。在一种方法中,响应是AddCustomerResponse,另一种是AddAccountResponse。 – ginalster