是否可以在C#中使用动态变量(不确定命名)?
在PHP中,我可以做到
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
我们可以用C#吗?
答案 0 :(得分:10)
在C#中,您使用dictionaries将值与字符串相关联。
答案 1 :(得分:9)
不,基本上。编译器不保证方法变量(以其书面形式)或名称......
存在如果它们是字段(实例或静态),那么您可以使用反射来获取值;但不是方法变量。你想要什么,或许用字典代替?
var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";
Console.WriteLine(vars["var_" + vars["var_1"]]);
答案 2 :(得分:1)
不确定这是否适用于局部变量(并且很可能它不会存储为索引),但您可以通过反射访问类属性。
答案 3 :(得分:1)
如果您的var
是一个类字段,那么您可以使用类Type
中的静态GetField
方法获取字段信息,例如其当前值。
答案 4 :(得分:1)
您不是在寻找简单的阵列吗?
string[] myArray = new string[2];
myArray[0] = "2";
myArray[1] = "this is variable 2"
Otherwhise字典是要走的路。