这是一个人为的例子,但我可以说我已声明了对象:
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#中吗?
提前致谢.
您需要清楚地了解对象和变量之间的区别.对象本身没有名称.变量名在编译时决定.除非通过反射,否则无法通过执行时确定的名称访问变量.
听起来你真的只想要一个Dictionary
:
Dictionarymap = new Dictionary (); foreach (string name in stringArray) { map[name] = new CustomObj(name); }
然后,您可以使用索引器访问对象到字典.
如果您真的想在执行时根据名称设置变量值,则必须使用反射(请参阅Type.GetField).请注意,这不适用于局部变量.