Рассмотрим следующий код:Лучшая практика для сбора общих классов
abstract class SomeClassX<T>
{
// blah
}
class SomeClassY: SomeClassX<int>
{
// blah
}
class SomeClassZ: SomeClassX<long>
{
// blah
}
Я хочу коллекцию SomeClassX <T> «s, однако, это не представляется возможным, так как SomeClassX <INT> = SomeClassX! <long> и список < SomeClassX < > > не допускается.
Так что мое решение иметь SomeClassX <T> реализовать интерфейс и определить мою коллекцию, как, где ISomeClassX является интерфейс:
class CollectionOfSomeClassX: List<ISomeClassX>
{
// blah
}
Это лучший способ сделать это, или есть лучший способ ?
Я подумал об этом, но отбросил эту идею, так как при поступлении предметов требуется кастинг. Может также использовать старые System.Collections :-) – VirtualStaticVoid 2008-10-22 22:49:32