我有以下接口(interface),一个用于实体,一个用于某些逻辑:
public interface IItem
{
int Id { get; set; }
}
public interface IGenerator
{
IList<IItem> Generate();
}
和实现:
public class ItemA : IItem
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ItemAGenerator : IGenerator
{
public IList<ItemA> Generate()
{
// do stuff
return List<ItemA>;
}
}
那个实现没有工作,它说它没有匹配的返回类型,所以我也试过了:
public class ItemAGenerator : IGenerator
{
public IList<IItem> Generate()
{
// do stuff
return List<ItemA>;
}
}
它也不起作用,它说:不能隐式转换类型 List<IItem>
至 List<ItemA>
.
如何让它发挥作用?我在这里错过了什么。
最佳答案
只需将列表创建为 List<IItem>
但添加 ItemA
就这样吧。
public class ItemAGenerator : IGenerator
{
public IList<IItem> Generate()
{
var list = new List<IItem>();
list.Add(new ItemA());
return list;
}
}
关于c# - 用具体类实现接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48106508/