string作为类名

时间:2014-04-19 14:03:34

标签: c# string class

我有一个名为cNormType的班级。我想创建此类的另一个实例,其名称包含在字符串sNT中。名称空间为QM。我想将五个参数传递给此类的构造函数(sNN,sTN,sDN,sHI,sLO)。

我试过了:

Type t1 = Type.GetType("QM.cNormType", sNT); 
Activator.CreateInstance(t1, [sNN,sTN,sDN,sHI,sLO]);

我得到18个错误,所以很明显我错了。有人会如此善良地向我展示我需要做什么吗?

3 个答案:

答案 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等)。