私は次のクラス/インターフェースを持っています:
public abstract class AbstractBasePresenter<T> : IPresenter<T>
where T : class, IView
{
}
public interface IPresenter<T>
{
}
public interface IView<TV, TE, TP> : IView
where TV : IViewModel
where TE : IEditModel
//where TP : AbstractBasePresenter<???>
{
}
public interface IView {}
IView <>のTPをAbstractBasePresenterから継承するクラスに制限する方法はありますか?
または、非ジェネリックIPresenterインターフェイスを作成し、それを実装するようにIPresenterを更新してから、[TP:IPresenter]チェックを使用する唯一の方法はありますか?
ありがとう
アップデート:
以下の提案された答えは機能しません:
public interface IView<TV, TE, TP> : IView
where TV : IViewModel
where TE : IEditModel
where TP : AbstractBasePresenter<IView<TV,TE,TP>>
{
}
私は次のように宣言されたインターフェースを持っています:
public interface IInsuredDetailsView : IView<InsuredDetailsViewModel, InsuredDetailsEditModel, IInsuredDetailsPresenter>
{ }
public interface IInsuredDetailsPresenter : IPresenter<IInsuredDetailsView>
{ }
コンパイラは、IInsuredDetailsPresenterがAbstractBasePresenterに割り当てられないと文句を言います>