Полиморфизм C # в универсальных типах

class Base
{}

class Sub : Base
{}


void AddNewBase(Base t, LinkedList<Base> list){ ... }
...
{

    Sub asub = new Sub();

    LinkedList<Sub> asubList = new LinkedList<Sub>();
    AddNewBase(asub,asubList) // doesn't work
}

в основном, у меня есть специальная функция вставки, которая берет новый элемент и список для его вставки, и выполняет некоторую «сортировку», чтобы найти хорошее место для его размещения в списке.

проблема в том, что я хочу сделать это на основе свойств в 'Base', поэтому было бы неплохо иметь только одну функцию, которая могла бы делать это для всех списков подтипов.

Я думаю, что я как бы хочу:

static void AddNewBase<T>(T t, LinkedList<T> list){ ... }

, но с некоторым способом пояснения T, например: 'где T - подкласс Base'

5
задан Aliostad 11 November 2010 в 13:39
поделиться