当前位置:  开发笔记 > 编程语言 > 正文

在实例化对象时以编程方式使用字符串作为对象名称

如何解决《在实例化对象时以编程方式使用字符串作为对象名称》经验,为你挑选了1个好方法。

这是一个人为的例子,但我可以说我已声明了对象:

CustomObj fooObj;
CustomObj barObj;
CustomObj bazObj;

我有一个字符串数组:

string[] stringarray = new string[] {"foo","bar","baz"};

我如何使用字符串数组以编程方式访问和实例化这些对象,使用类似foreach的方法进行迭代:

foreach (string i in stringarray) {
    `i`Obj = new CustomObj(i);
}

希望我想要了解的想法很清楚.这可能在C#中吗?

提前致谢.



1> Jon Skeet..:

您需要清楚地了解对象和变量之间的区别.对象本身没有名称.变量名在编译时决定.除非通过反射,否则无法通过执行时确定的名称访问变量.

听起来你真的只想要一个Dictionary:

Dictionary map = new Dictionary();

foreach (string name in stringArray)
{
    map[name] = new CustomObj(name);
}

然后,您可以使用索引器访问对象到字典.

如果您真的想在执行时根据名称设置变量值,则必须使用反射(请参阅Type.GetField).请注意,这不适用于局部变量.


我认为这个回应应该获得"直觉客户真正想要的"奖励.好答案
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有