2

在我的winform类里面我有构造函数

private IBookRepository _Repository;
        public AddEditForm(IBookRepository repository )
        {
            InitializeComponent();
            _Repository = repository;
        }

现在我想使用构造函数链接,但在某个地方我做错了。我试过了

public AddEditForm(Book book) : this(IBookRepository repository)
{
   ...
}
4

3 回答 3

4

如果要添加另一个构造函数,则需要类似:

public AddEditForm(Book book, IBookRepository repository) : this(repository)
{
   ...
}

当使用 链接构造函数时this,您将参数传递给另一个构造函数,该构造函数在调用构造函数的参数列表中声明。

于 2013-10-16T12:03:28.380 回答
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 
}
于 2013-10-16T12:03:45.317 回答
1

您需要将 IBookRepository 作为参数传递给构造函数。下面是一个例子。

public AddEditForm(IBookRepository repository, Book book) : this(repository)
{
   // your code here
}

此代码假定您有另一个采用类型的构造函数IBookRepository

public AddEditForm(IBookRepository repository)
{
   // your code here
}
于 2013-10-16T12:04:25.027 回答