C# 在运行时确定变量名

C# 在运行时确定变量名,c#,.net,wpf,string,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 这是可以通过反射实现的吗?如果没有,我怎样才能做到这一点呢?我不明白,你到底会得到什么,但你可以使用如下表达式: static void

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

string A = "This is A!";
string B = "This is B!";
我在文本框中输入A,然后我想用消息框显示A的内容

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

这是可以通过反射实现的吗?如果没有,我怎样才能做到这一点呢?

我不明白,你到底会得到什么,但你可以使用如下表达式:

    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);
    }
static void PrintVariableName(表达式)
{
WriteLine(((MemberExpression)expression.Body.Member.Name);
}
静态void Main(字符串[]参数)
{
var a=“你好,世界!”;
PrintVariableName(()=>a);
}

你能描述具体的用例而不是概念性的问题吗?

A
B
类变量(又名字段)还是方法变量(又名局部变量)?嗯,这真的有区别吗?我实际上需要上述两种情况下的功能;字段通过反射可用;当地人都不是,这基本上是我需要的。如果我提出一个关于我为什么需要这个功能的详细问题,我会浪费每个人的时间,因为这个问题的范围太窄,因此,这个话题很可能已经结束了。