2015-08-27 3 views
-1

У меня есть класс EmployeeAccountPresenter, который должен работать с объектами EmployeeAccountView (который унаследован от класса Form) и EmployeeBridge.Наследование формы. Невозможно преобразовать типы

namespace DBEmployee 
{ 
    class EmployeeAccountPresenter 
    { 
     public EmployeeAccountView form; 
     public EmployeeBridge bridge; 

     public EmployeeAccountPresenter(EmployeeAccountView _form, EmployeeBridge _bridge) 
     { 
      this.form = _form; 
      this.bridge = _bridge; 
     } 
    } 
} 

EmployeeAccountView класс:

namespace DBEmployee 
{ 
    class EmployeeAccountView : Form 
    {... 

В моем классе Form1 я сделать:

namespace DBEmployee 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     {    
      InitializeComponent(); 
      EmployeeBridge eb = new EmployeeBridge(); 
      EmployeeAccountPresenter eap = new EmployeeAccountPresenter(this, eb); 
     } 

    } 
} 

Но я получаю сообщение об ошибке в 'это' параметр, который:

не может конвертировать из «DBEmployee.Form1» в '' DBEmployee.EmployeeAccountView

EmployeeAccountView класс наследуется от класса Form. Почему я не могу конвертировать?

ответ

3

this относится к текущему объекту, который имеет тип Form1. Form1 в свою очередь является подклассом Form.

Нигде EmployeeAccountView не вступает в игру.

Я подозреваю, что вы на самом деле хотите, чтобы определить свою форму, как это:

public partial class Form1 : EmployeeAccountView 

Теперь this будет подтипом EmployeeAccountView, который может быть передан в качестве аргумента EmployeeAccountPresenter.

Смежные вопросы