C#中的动态变量?

Moo*_*oon 10 c# dynamic-variables

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

在PHP中,我可以做到

$var_1 = "2";
$var_2 = "this is variable 2";

$test = ${"var_".$var_1};

echo $test;

output: this is variable 2;
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*wis 10

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


Mar*_*ell 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"]]);
Run Code Online (Sandbox Code Playgroud)