构造函数链接接口作为参数

时间:2013-10-16 12:00:37

标签: c# .net winforms

在我的winform类中我有构造函数

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

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

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

3 个答案:

答案 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
}