C#中的动态变量?

是否可以在C#中使用动态变量(不确定命名)?

在PHP中,我可以做到

$var_1 = "2"; $var_2 = "this is variable 2"; $test = ${"var_".$var_1}; echo $test; output: this is variable 2; 

我们可以用C#做​​到这一点吗?

在C#中,您使用词典将值与字符串相关联。

不,基本上。 编译器不保证方法变量(以其书面forms)或名称存在…

如果它们是字段(实例或静态),那么您可以使用reflection来获取值; 但不是方法变量。 你想要什么,或许用字典代替?

 var vars = new Dictionary(); vars["var_1"] = "2"; vars["var_2"] = "this is variable 2"; Console.WriteLine(vars["var_" + vars["var_1"]]); 

不确定这是否适用于局部变量(并且很可能它不会因为它们被存储为索引),但您可以通过reflection访问类属性。

如果var是类字段,则可以使用类Type的静态GetField方法来获取字段信息,例如其当前值。

你不是在寻找简单的数组吗?

 string[] myArray = new string[2]; myArray[0] = "2"; myArray[1] = "this is variable 2" 

Otherwhise字典是要走的路。