2017-08-07 71 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

由橡皮鸭固定。 –