在运行时确定变量名称

时间:2012-08-23 08:10:55

标签: c# .net wpf string

如何确定变量的名称并在运行时访问它?例如,如果我有两个字符串:

string A = "This is A!";
string B = "This is B!";

我在文本框中键入A,然后我想使用消息框显示A的内容。

MessageBox.Show(A); //Variable A is retrieved from the textbox input

这是否可以用反射来实现?如果没有,我该怎么做呢?

1 个答案:

答案 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);
    }

您能描述具体的用例而非概念性问题吗?