我想了解为什么以下不会编译。编译器在CreatePresenter尝试设置View属性的行上抱怨:不知道为什么这不会编译
不能将类型'Sandbox.Program.MyView'隐式转换为'TView'。
我知道作业的上下文没有意义,它更多是为了说明。任何帮助将是伟大的!
interface IView {
}
class Presenter<T> where T : IView {
public T View { get; set; }
}
class MyView : IView {
}
class MyPresenter : Presenter<MyView> {
public MyPresenter() { }
}
class ViewBase<TPresenter, TView>
where TPresenter : Presenter<TView>, new()
where TView : IView {
public TPresenter Presenter { get; private set; }
void CreatePresenter() {
this.Presenter = new TPresenter();
this.Presenter.View = new MyView();
}
}
您正在使用什么版本的.NET? – Oded 2011-03-01 20:34:43
你得到哪个错误? – 2011-03-01 20:35:18
我正在使用.NET 4.0 – Marco 2011-03-01 20:35:30