在C#中的动态变量?(Dynamic variable in C#?)

2019-06-18 12:26发布

是否有可能使用一个动态变量(不知道命名)在C#?

在PHP中,我能做到

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

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

echo $test;

output: this is variable 2;

我们能做到这一点在C#中?

Answer 1:

在C#中,您使用的字典将值和字符串关联。



Answer 2:

没有,基本上是这样。 编译器不保证会存在方法变量(其形式为书面),或名称...

如果他们字段(实例或静态),那么你可以使用反射来获取值; 但不是方法变量。 你想要的东西,也许是使用字典作为替代品?

var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";

Console.WriteLine(vars["var_" + vars["var_1"]]);


Answer 3:

不知道这是否与当地变量(和最有可能它不会因为它们存储索引),但你可以通过反射访问类的属性。



Answer 4:

如果您的var是一个类字段,那么你可以使用静态GetField的方法从类Type获取字段信息,比如它的当前值。



Answer 5:

你是不是在找简单的数组?

string[] myArray = new string[2];

myArray[0] = "2";
myArray[1] = "this is variable 2"

Otherwhise字典是要走的路。



文章来源: Dynamic variable in C#?