私は
public class A<T> where T : IBase
{
//Does something
}
クラス A のコレクションのように動作する 2 番目のクラスが必要です
public class B<A<T>> : IEnumerable<A<T>> where T : IBase
{
}
問題は、次のようなクラスを作成したくないことです
public class B<A<MyCustomObjectP>> : IEnumerable<A<MyCustomObjectP>>
{
}
public class C<A<MyCustomObjectQ>> : IEnumerable<A<MyCustomObjectQ>>
{
}
などなど.. CustomObject を、IBase を実装するジェネリック型パラメーターにしたいと考えています。
これを行うことさえ違法であることがわかりました:
public class B<T, U> : IEnumerable<T> where T : A<U> where U : IBase
{
}
これが違法である場合、どうすればこの種の動作を達成できますか? 役立つようなより良いデザイン パターンはありますか?