2017-08-07 72 views
-1

生成和錯誤,我有以下接口:泛型類繼承了通用接口,但是在編譯

public interface IModel<T> 
{ 
    List<T> responseIds { get; set; } 
} 

而且我有一個實現該接口的泛型類:

class SFDCResponse<T> : SFDCBaseResponse, IModel<T> 
{ 
    public List<T> responseIds; 
} 

最後,我定義了一個類如下:

class SFDCAccounts : SFDCResponse<MyClass> { } 

但是,在編譯時,我得到以下錯誤:

SFDCResponse<T> does not implement interface member IModel<T>.responseIds 

是不可能有一個泛型類繼承一個通用接口,並有編譯器驗證類編譯時間?

+0

您知道有代碼操作會自動生成您的界面,因此您不會遇到這些問題 –

+1

如果您堅持推薦用於C#的外殼規則,則問題會更加清晰。屬性是PascalCase和字段是camelCase [MSDN參考](https://msdn.microsoft.com/en-us/library/x2dbyw72(v = vs.71).aspx)。你可以看到接口聲明瞭你的類缺少的屬性。 – ja72

回答

0

responseIds是接口中的一個屬性,以及實現類中的一個Field。使它成爲一個財產,並應該解決您的問題。

+0

可能要添加一些代碼,使您的答案更好... – maccettura

+0

謝謝。就是這樣,我粘貼它的時候就意識到了。 –

0

那麼,只是看着我自己的帖子,我意識到我的SFDCResponse類實現了responseId作爲一個字段,而不是一個屬性。我只是糾正爲:

class SFDCResponse<T> : SFDCBaseResponse, IModel<T> 
{ 
    public List<T> responseIds { get; set; } 
} 

並編譯應用程序。有時候只需要經過這個過程就可以得到你自己的答案。

+0

由橡皮鴨固定。 –