错误:List <int>没有'System.Collections.Generic.IEnumerable <int>的匹配项

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

Mar*_*ers 6

您可以使用类型的支持字段,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)