c# - 用具体类实现接口(interface)方法

标签 c# interface

我有以下接口(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/

相关文章:

使用更新命令的 C# MySQL 语法错误

c# - 无法从 GridView 中的行/单元格获取值

c# - 3D Delaunay 三角剖分 C# 库?

java - 我不明白 'this' 与父类(super class)一起使用

c# - 如何使用 Unity 一次注入(inject)两个实现?

java - 收集PlaceholderFragment中的数据并发送给Activity

c# - 读取文件名并查找特定字符串

c# - VS17 安装 : Bootstrapper has stopped working

c++ - C++接口(interface)多重继承中的歧义

java - Java 中的接口(interface)