【发布时间】:2015-05-15 07:30:32
【问题描述】:
我有以下结构,我需要通过 System.Reflection 创建它的一个实例。最大的问题是我有一个通用参数和一个非通用参数。我必须使用 System.Reflection 因为它将在 T 可以变化的循环中调用。我查看了 this ,但无法使用第二个参数(int 标记)使其工作。很抱歉,我不得不问这个基本问题。
struct pair<T>
{
public pair(T value,int tag)
{...}
}
所以我需要这个魔法:
object createPair(object o,int tag)
{
return *somemagic*
}
编辑:解决方案是结合第一个答案公开结构。如果结构嵌套在通用结构中,则两个答案都会引发 ArgumentException,与输入无关。很抱歉不知道嵌套的这种影响。
【问题讨论】:
-
这闻起来像XY Problem。也许试着解释你正在尝试做什么而不是你想要做什么。
-
认为它会太长而且不好解释。我想创建一个带有多个键的字典之类的东西,并且可以使用相同的键添加对象。它应返回与给定键匹配的对象数组。键的数量应该是可变的。由于项目限制,我不允许更改 pair 结构中的任何内容。
-
你是说使用每个对象的 type 作为对象的 Key,还是允许任意(但允许碰撞)的 Key 对象?
-
我说的是第二个。