这是我的演讲者课程:
public class ListPresenter<TViewInterface, TContext> : Presenter<TViewInterface, TContext>
where TViewInterface : IContextView<TContext>, IListView
where TContext : IObservableObject
{
protected override void OnInitializePresentationComplete(dynamic data)
{
View.ViewPresenter = (ListPresenter<TViewInterface, TContext>)this;
}
}
以下是我在视图中定义属性的方法:
public ListPresenter<IListView, IObservableObject> ViewPresenter { get; set; }
ViewPresenter属性抛出的编译时异常是“类型IListView不能用作泛型类型或方法ListPresenter<TViewInterface, TContect>
中的类型参数TViewInterface。没有从IListView到IContextview<IObservableObject>
的隐式引用转换
我是否错误地定义了ViewPresenter?或者我没有正确地投射它?或两者兼而有之?
答案 0 :(得分:0)
我认为这与你的通用约束有关。您将TViewInterface限制为TContext的IContextView和IListView,但这并不意味着IListView是TContext的IContextView,只是您使用的任何类型都是......然后错误清楚地表明您正在尝试使用IListView作为TViewInterface类型,但由于它没有实现IContextView接口,因此失败。