Список различных универсальных типов, динамическое приведение

У меня следующая проблема:

  • Мне нужно хранить универсальные объекты с разными параметрами типа, например javish Sth ,
  • "?" типы обычно являются примитивами, поэтому они не могут быть расширены / изменены
  • Мне нужно выполнить некоторые методы для каждого элемента моего списка
    • разные методы для разных типов или, по крайней мере, разные перегрузки этих методов

Хотя я не знаю, как хранить такие типы, давайте для простоты предположим List .

Я мог бы где-нибудь сохранить рассматриваемый тип ( List > ), получив его с помощью typeof () , но тогда как я могу преобразовать свой вернуть объект к требуемому типу? Что-то вроде

foreach(var entry in myList)
{
    var obj = (Sth<A, entry.Key>) entry.Value;
    myMethod(obj); //This can have overloads for object, Sth<A,int>, Sth<A,string>,
                   // etc. Generally, I need a correct type of obj here.
}

Конечно myMethod - это универсальный библиотечный метод со слишком большим количеством перегрузок, чтобы если-иначе он с obj is Sth ...

Думаю, я мог бы создать новый объект на основе entry.Key , а затем заполнить

Возможны ли вообще такие комбинации с типами?

Я считаю, что ответ заключается в правильном создании myList , но я не знаю, как это сделать.

Любая помощь приветствуется!

Счастливого рождества :)

0
задан Piotr Zierhoffer 23 December 2011 в 14:06
поделиться