2016-04-22 26 views
4
Response response = new Response(); 

這是顯示錯誤「不能鍵入ResponseBase的隱式轉換爲響應」行:不能鍵入ResponseBase的隱式轉換爲響應

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

...它在呼喚:

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

...這是響應類:

class Response : ResponseBase 
    { 
    // empty 
    } 

...和ResponseBase的

public class ResponseBase 
    {...} 

這究竟是爲什麼?不應該說'不能隱式地將類型Response轉換爲ResponseBase'而不是其他方式,因爲我試圖將一個Response類傳遞給接受ResponseBase的方法?以及如何解決它?

我瀏覽過互聯網,它聲稱我應該能夠將派生類傳遞給接受基類的方法。

+0

將await Invoke函數(即ResponseBase)的返回值賦給Response類型的變量。所以你試着將父類實例賦值給一個派生類型的變量。 – Evk

回答

3

問題不在於當您試圖通過response作爲參數時。

當您嘗試將InvokeResponseBase類型)的結果賦值爲response變量(Response類型)時,出現錯誤。

要修復它只是改變response類型ResponseBase

ResponseBase response = new Response(); 

或使用新ResponseBase變量。

+1

Ahhhhh。謝謝。我是盲人。當然。可以在5分鐘內接受你的答案,所以 - 直到那時......謝謝! – b0x0rz

相關問題