繁体   English   中英

在实现通用接口的类上,“类不实现接口成员”错误

[英]“Class does not implement interface member” error on class implementing a generic interface

编译代码时出现此错误,无法确定原因:

类没有实现接口成员

这是我的代码:

interface IReview<T> where T : Review
{
    IEnumerable<T> Reviews { get; set; }

    void AddReview<T>(T item);  
}

class ReviewCollection : IReview<Review>
{
    IEnumerable<Review> _reviews;

    public IEnumerable<Review> Reviews
    {
        get { return _reviews; }
        set { _reviews = value; }
    }

    public void AddReview(Review item)
    {

    }
}

有什么问题?

您在界面中定义AddReview是错误的。 它应该是:

void AddReview(T item);  

泛型类型参数T已由类提供,您不希望偏离您的方法(在本例中)。 您现在将T的含义更改为本地类型参数,而不是使用类级别上的可用参数。

您没有实现泛型方法:

public void AddReview<Review>(Review item)
{    
}

或者您应该在界面中更改方法的签名:

void AddReview(T item);

您可能需要更改此方法:

public void AddReview(Review item)

对此:

public void AddReview<Review>(Review item)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM