由于具体类和接口没有IEnumerable <T>和List <T>的匹配返回类型而导致错误

Pri*_*cey 3 c# ienumerable interface list

我有以下界面和具体类.

我收到的错误是:

'DAL.Model.Audit.Categories'无法实现'DAL.Interfaces.IAudit.Categories',因为它没有匹配的返回类型'System.Collections.Generic.IEnumerable'.

有谁能请解释我在这里做错了什么?

public interface IAudit
{
    IEnumerable<ICategory> Categories { get; set; }
    IEnumerable<IAuditAnswer> Answers { get; set; }
}

public class Audit : IAudit
{
    public List<ICategory> Categories { get; set; }
    public List<IAuditAnswer> Answers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 6

在实现接口时,您必须尊重合同:

public class Audit : IAudit
{
    public IEnumerable<ICategory> Categories { get; set; }
    public IEnumerable<IAuditAnswer> Answers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在接口中,2个属性被定义为IEnumerable<T>,因此在您的实现类中,您应该使用相同的类型而不是List<T>.