是否可以在 C# 中使用动态变量(不确定命名)?
在 PHP 中,我可以做到
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
我们可以在 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# 中,您使用字典将值与字符串相关联。
不,基本上。编译器不保证方法变量将存在(以书面形式),或名称......
如果它们是字段(实例或静态),那么您可以使用反射来获取值;但不是方法变量。对于您想要的,也许使用字典作为替代品?
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"
否则字典是要走的路。