如何确定变量的名称并在运行时访问它?例如,如果我有两个字符串:
string A = "This is A!";
string B = "This is B!";
我在文本框中键入A,然后我想使用消息框显示A的内容。
MessageBox.Show(A); //Variable A is retrieved from the textbox input
这是否可以用反射来实现?如果没有,我该怎么做呢?
答案 0 :(得分:1)
我无法理解,你究竟会得到什么,但你可以使用这样的表达式:
static void PrintVariableName<T>(Expression<Func<T>> expression)
{
Console.WriteLine(((MemberExpression)expression.Body).Member.Name);
}
static void Main(string[] args)
{
var a = "Hello, world!";
PrintVariableName(() => a);
}
您能描述具体的用例而非概念性问题吗?