我有下面的接口和具体的类。
我收到以下错误:
'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; }
}
最佳答案
实现接口时,您必须遵守合同:
public class Audit : IAudit
{
public IEnumerable<ICategory> Categories { get; set; }
public IEnumerable<IAuditAnswer> Answers { get; set; }
}
在接口中,这两个属性定义为
IEnumerable<T>
,因此在实现类中,应使用相同的类型而不是List<T>
。