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

时间:2015-02-04 07:40:04

标签: c# .net generics interface

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

  

Class没有实现接口成员

这是我的代码:

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)
    {

    }
}

它有什么问题?

3 个答案:

答案 0 :(得分:3)

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

void AddReview(T item);  

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

答案 1 :(得分:0)

您没有实现通用方法:

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

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

void AddReview(T item);

答案 2 :(得分:0)

您可能需要更改此方法:

public void AddReview(Review item)

对此:

public void AddReview<Review>(Review item)