题
是否可以使用动态变量(不知道有关命名)在C#?
在PHP,我可以做
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
我们能做到这一点在C#?
解决方案
在C#中,使用字典以与字符串相关联的值
其他提示
没有,基本上。编译器不保证方法变量将存在(在他们的形式写的),或具有名称...
如果他们字段(实例或静态),那么你可以使用反射来获取值;但不是方法变量。你想要的东西,也许是使用字典作为替代品?
var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";
Console.WriteLine(vars["var_" + vars["var_1"]]);
不知道这是否与当地变量(和最有可能不会做,因为它们存储索引),但你可以通过反射访问类的属性。
如果您var
是一个类字段,那么你可以使用静态 GetField
从类Type
方法来获得字段的信息,如它的当前值。
您是不是在找简单的数组?
string[] myArray = new string[2];
myArray[0] = "2";
myArray[1] = "this is variable 2"
Otherwhise字典是要走的途径。
不隶属于 StackOverflow