2013-10-16 60 views
2

我的WinForm類裏面我有構造構造帶接口鏈接作爲參數

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

現在我想用構造函數鏈的某個地方,但我把它錯了。我

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

回答

4

試圖如果要添加另一個構造函數,你想要的東西,如:

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

使用this鏈構造函數時,您將參數傳遞到這是在調用構造函數的參數中聲明另一個構造名單。

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 
} 
1

您需要將IBookRepository作爲參數傳遞給您的構造函數。下面是一個例子。

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

此代碼假定你有另一個構造函數類型IBookRepository

public AddEditForm(IBookRepository repository) 
{ 
    // your code here 
}