是否可以使用动态变量(不知道有关命名)在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字典是要走的途径。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top