C#中的动态变量?

时间:2009-08-15 21:27:45

标签: 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;

我们可以用C#吗?

5 个答案:

答案 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字典是要走的路。