一般的な機能とコントロールを保持する基本的なWindows フォーム フォームを作成しようとしていますが、メソッドの型を必要とするクラスへの参照も保持しています。各フォームは異なるタイプを表すため、次のように何かを行うことができると考えました。
public partial class Base<T> : Form where T : BaseClass
{
private GenericHandler handler = new GenericHandler();
}
public class BaseClass { }
public class GenericHandler
{
public void DoSomethingWithInstance<T>(T instance) where T : BaseClass
{
}
}
デザイナー クラスの宣言も、フォームの内容を反映しています。type を表す 2 番目のフォームを実行すると、次のFoo
エラーが発生するため、デザイナーにアクセスできません。
このファイル内のクラスを設計できないため、デザイナーを表示できませんでした。デザイナーは、ファイル内の次のクラスを検査しました: Foo --- 基本クラス 'WindowsFormsApplication1.Base' を読み込めませんでした。アセンブリが参照され、すべてのプロジェクトがビルドされていることを確認してください。
FooClass --- 基本クラス 'WindowsFormsApplication1.BaseClass' を設計できません。
public partial class Foo : Base<FooClass>
{
public Foo()
{
InitializeComponent();
}
}
public class FooClass : BaseClass { }
なぜこれが起こるのですか/私は何を間違っていますか、またはこれを行う他の方法はありますか?