考虑以下代码:
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
}
这是最好的方法,还是有更好的方法?