我有一個基類:轉換對象類型
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