У меня есть следующая структура, и мне нужно создать экземпляр из него через System.Reflection. Большая проблема заключается в том, что у меня есть общий и не общий параметр. Я должен использовать System.Reflection, потому что он будет вызываться в цикле, где T может меняться. Я посмотрел на this, но мне не удалось заставить его работать со вторым параметром (int tag). Мне жаль, что я должен задать этот основной вопрос.Построить общий экземпляр с общим параметром и нормальным параметром
struct pair<T>
{
public pair(T value,int tag)
{...}
}
так что мне нужно было бы волшебство в этом:
object createPair(object o,int tag)
{
return *somemagic*
}
EDIT: раствор делает структуры населения в сочетании с первым ответом. Если struct вложен в общую структуру, оба ответа вызывают исключение ArgumentException, независимо от ввода. Мне жаль, что я не знаю этого влияния на гнездование.
Это пахнет [проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Возможно, попробуйте объяснить, что вы пытаетесь сделать, а не то, что вы хотите сделать. –
Думал, что это будет слишком долго и нехорошо объяснить. Я хочу создать нечто вроде словаря с несколькими ключами и возможность добавлять объекты с одним и тем же ключом. Он должен возвращать массив объектов, соответствующих указанным клавишам. Количество ключей должно быть переменным. Мне не разрешено ничего менять в структуре пары из-за ограничений проекта. – leAthlon
Вы говорите об использовании _type_ каждого объекта в качестве ключа объекта или разрешении произвольного (но разрешенного столкновения) объекта Key? – David