【问题标题】:"Class does not implement interface member" error on class implementing a generic interface实现泛型接口的类出现“类未实现接口成员”错误
【发布时间】:2015-02-04 07:40:04
【问题描述】:

我在编译代码时遇到此错误,但无法找出确切原因:

类没有实现接口成员

这是我的代码:

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

    }
}

它有什么问题?

【问题讨论】:

    标签: c# .net generics interface


    【解决方案1】:

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

    void AddReview(T item);  
    

    类已经提供了泛型类型参数T,并且您不想偏离您的方法(在这种情况下)。您现在将 T 的含义更改为本地类型参数,而不是使用类级别可用的参数。

    【讨论】:

      【解决方案2】:

      你没有实现泛型方法:

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

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

      void AddReview(T item);
      

      【讨论】:

        【解决方案3】:

        您可能需要更改此方法:

        public void AddReview(Review item)
        

        到这里:

        public void AddReview<Review>(Review item)
        

        【讨论】:

          最近更新 更多