在我的winform类中我有构造函数
private IBookRepository _Repository;
public AddEditForm(IBookRepository repository )
{
InitializeComponent();
_Repository = repository;
}
现在我想使用构造函数链接,但某处我错了。我试过
public AddEditForm(Book book) : this(IBookRepository repository)
{
...
}
答案 0 :(得分:4)
如果您要添加其他构造函数,则需要以下内容:
public AddEditForm(Book book, IBookRepository repository) : this(repository)
{
...
}
使用this
链接构造函数时,将参数传递给在调用构造函数的参数列表中声明的另一个构造函数。
答案 1 :(得分:3)
要将存储库传递给链式构造函数,您必须将其作为第一个构造函数的参数接受,如下所示:
public AddEditForm(IBookRepository repository, Book book) : this(repository)
{
// here you can use both book and repository
}
如果可能,您也可以像这样直接构建存储库:
public AddEditForm(Book book) : this(new BookRepository())
{
// here you can only use book
}
答案 2 :(得分:1)
您需要将IBookRepository作为参数传递给构造函数。以下是一个例子。
public AddEditForm(IBookRepository repository, Book book) : this(repository)
{
// your code here
}
此代码假设您有另一个类型IBookRepository
public AddEditForm(IBookRepository repository)
{
// your code here
}