Sky*_*kyN 2 c# interface-implementation
如何用列表实现接口成员"f"?
public interface I
{
IEnumerable<int> f { get; set; }
}
public class C:I
{
public List<int> f { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
错误1'ClassLibrary1.C'未实现接口成员'ClassLibrary1.I.f'.'ClassLibrary1.Cf'无法实现'ClassLibrary1.If',因为它没有匹配的返回类型'System.Collections.Generic.IEnumerable'.c:\ users\admin\documents\visual studio 2010\Projects\ClassLibrary1\Class1.cs
您可以使用类型的支持字段,List<int>但将其公开为IEnumerable<int>:
public interface I
{
IEnumerable<int> F { get; set; }
}
public class C:I
{
private List<int> f;
public IEnumerable<int> F
{
get { return f; }
set { f = new List<int>(value); }
}
}
Run Code Online (Sandbox Code Playgroud)