我在仿制药方面没有太多经验,但有人能向我解释一下为什么这行不通,我需要做什么才能让它起作用?
我有3个接口。
public interface IOnlineView
public interface ICalendarView : IOnlineView
public interface IDateView : ICalendarView
那么我有3个演示者课程
public abstract class OnlinePresenter<T> where T : IOnlineView
{
protected OnlinePresenter(T view) { }
}
public class CalendarPresenter<T> : OnlinePresenter<T> where T : ICalendarView
{
public CalendarPresenter(ICalendarView view) : base(view) { }
}
public class DatePresenter<T> : CalendarPresenter<IDateView>
{
public DatePresenter(IDateView view) : base(view) { }
}
这个
base(view)
对CalendarPresenter类的调用表示iCalendarView不可分配给类型
T
将IDateView传递给CalendarPresenter很好,但将iCalendarView传递给联机演示者却不起作用。我错过什么了吗?如果iCalendarView继承自IOnlineView,为什么不能将其作为参数传递?
在我在日期和在线类之间添加iCalendarView和CalendarPresenter之前,这很好地工作,但是我需要它,这样CalendarPresenter可以处理日历显示,并且可以从其他演示者继承。