[英]“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.