名称存储在另一个变量中的变量的访问值

时间:2012-08-25 04:46:30

标签: c# variables variable-assignment

使用C#, 我能够访问其名称存储在另一个字符串变量

中的变量的内容

例如

string str ="ABCDEFG";
string variable = "str";

这里我可以使用var ????访问字符串str的值

2 个答案:

答案 0 :(得分:2)

你可能可以,但这太复杂了。你有没有想过使用Dictionary类?

Dictionary<string,string> myDictionary = new Dictionary<string,string>();

myDictionary["str"] = "ABCDEF";

var valueinstr = myDictionary["str"];

答案 1 :(得分:1)

是的,您可以使用反射。

var fieldInfo = this.GetType().GetField(var);
string theValue = (string) fieldInfo.GetValue(this);

请注意,在您的示例中,var是一个关键字,因此您无法将其用作变量的名称。

使用反射方法,您将获得描述属性的对象,然后使用它从类的特定实例中检索值。如果您的媒体资源不公开,那么当您获得BindingFlags时,您必须指定正确的PropertyInfo。如果您使用的是示例中的变量,那么您需要检索FieldInfo对象(another example)。