我有一个名为cNormType
的班级。我想创建此类的另一个实例,其名称包含在字符串sNT
中。名称空间为QM
。我想将五个参数传递给此类的构造函数(sNN,sTN,sDN,sHI,sLO
)。
我试过了:
Type t1 = Type.GetType("QM.cNormType", sNT);
Activator.CreateInstance(t1, [sNN,sTN,sDN,sHI,sLO]);
我得到18个错误,所以很明显我错了。有人会如此善良地向我展示我需要做什么吗?
答案 0 :(得分:1)
第二个陈述中的括号到底应该做什么?这是尝试创建一个数组吗?这不是你创建数组的方式,也不需要创建数组。第二个参数声明为params
,这意味着您只能传递离散参数,系统会将它们打包为数组。
答案 1 :(得分:0)
我无法测试整个事情,因为我没有你的所有代码,但删除了方括号:
Type t1 = Type.GetType("QM.cNormType");
cNormType newNorm =
(cNormType)Activator.CreateInstance(t1, sNT, sTN, sDN, sHI, sLO);
我不确定使用sNT
中的名称创建类的实例是什么意思。
答案 2 :(得分:0)
我在这里做了一些关于你正在尝试做什么的非常疯狂的假设,但这会实现你真正想要的吗?
Dictionary<string, cNormType> norms = new Dictionary<string, cNormType>();
...
norms[sNT] = new cNormType(t1, sNN, sTN, sDN, sHI, sLO);
然后 norms[sNT]
是如何引用每个实例的(Bob,Sally等)。