拥有类书籍,我应该实现两个外表。评论和评级。这是班级:
£ 5.00
它出错
错误2已经定义了一个名为“Books”的成员 参数类型
如何解决这个问题,有可能在一本书中添加评论和评级?
答案 0 :(得分:4)
你有两次相同的构造函数。我猜您正在使用实体框架,如果我没记错,您希望将这些IList
更改为ICollection
以使用实体框架延迟加载功能。
更改
public class Books
{
public Books()
{
CommentsList = new List<Comments>();
}
public Books()
{
RatingList = new List<Rating>();
}
}
致:
public class Books
{
public Books()
{
CommentsList = new List<Comments>();
RatingList = new List<Rating>();
}
}
答案 1 :(得分:2)
您根本无法拥有两个具有相同签名的构造函数。您应该考虑使用a builder pattern代替。
您通常会隐藏构造函数(将它们设为私有),而是公开静态方法,如CreateFromComments
和CreateFromRatings
。
private Books() { }
public static Books CreateFromComments()
{
var ret = new Books();
ret.CommentsList = new List<Comments>();
return ret;
}
public static Books CreateFromRatings()
{
var ret = new Books();
ret.RatingsList = new List<Ratings>();
return ret;
}
答案 2 :(得分:0)
可能是你可以传递一个布尔参数来设置列表来初始化...
public Books(bool comments)
{
if (comments)
CommentsList = new List<Comments>();
else
RatingList = new List<Rating>();
}