У меня следующая проблема:
- Мне нужно хранить объекты общего назначения с параметрами другого типа, что-то вроде javish
Sth<A,?>
, - "?"типы обычно являются примитивами, поэтому не очень расширяемые / изменяемые
- Мне нужно выполнить несколько методов для каждого элемента моего списка
- разные методы для разных типов или, по крайней мере, разные перегрузки этих методов
Хотя я не знаю, как хранить такие типы, давайте для простоты предположим List<object>
.
Я мог бы где-то хранить рассматриваемый тип (List<KeyValuePair<Type,object>>
), получая его с 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<T>
- это универсальный библиотечный метод со слишком большим количеством перегрузок, чтобы если-либо его с obj is Sth<A, uint>
...
Я думаю, я мог бы создать новыйобъект на основе entry.Key
и затем заполнение
Возможны ли такие комбинации с типами?
Я полагаю, что ответ заключается в правильном создании myList
, но я не знаюкак это сделать.
Любая помощь будет оценена!
С Рождеством:)