错误:列表没有 'System.Collections.Generic.IEnumerable的匹配
如何用列表实现接口成员“f”?
public interface I
{
IEnumerable<int> f { get; set; }
}
public class C:I
{
public List<int> f { get; set; }
}
错误 1“ClassLibrary1.C”未实现接口成员“ClassLibrary1.If”。 “ClassLibrary1.Cf”无法实现“ClassLibrary1.If”,因为它没有“System.Collections.Generic.IEnumerable”的匹配返回类型。 c:\users\admin\documents\visual studio 2010\Projects\ClassLibrary1\Class1.cs
How to implement interface members "f" with the list?
public interface I
{
IEnumerable<int> f { get; set; }
}
public class C:I
{
public List<int> f { get; set; }
}
Error 1 'ClassLibrary1.C' does not implement interface member 'ClassLibrary1.I.f'. 'ClassLibrary1.C.f' cannot implement 'ClassLibrary1.I.f' because it does not have the matching return type of 'System.Collections.Generic.IEnumerable'. c:\users\admin\documents\visual studio 2010\Projects\ClassLibrary1\Class1.cs
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您还可以隐藏
IEnumerable;
通过显式指定接口来实现。I
的 f当使用
C
类时,只有一个可见的f
成员:IList; f。但是,当您将类转换为
I
时,您可以访问IEnumerable; f
再次成为成员。You can also hide
IEnumerable<int> f
ofI
by specifying the interface explicitly.When using you class
C
, there is only onef
member visible:IList<int> f
. But when you cast your class toI
you can access theIEnumerable<int> f
member again.您可以使用
List
类型的支持字段,但将其公开为IEnumerable
:You can use a backing field of type
List<int>
but expose it asIEnumerable<int>
: