次のコードを検討してください。
abstract class SomeClassX<T>
{
// blah
}
class SomeClassY: SomeClassX<int>
{
// blah
}
class SomeClassZ: SomeClassX<long>
{
// blah
}
SomeClassX<T> のコレクションが必要ですが、 SomeClassX<int> != SomeClassX<long> および List<SomeClassX<>> が許可されていないため、これは不可能です。
したがって、私の解決策は、 SomeClassX<T> にインターフェイスを実装させ、コレクションを次のように定義することです。ここで、ISomeClassX はインターフェイスです。
class CollectionOfSomeClassX: List<ISomeClassX>
{
// blah
}
これはこれを行うための最良の方法ですか、それともより良い方法はありますか?