2012-08-23 49 views
0

如何確定變量的名稱並在運行時訪問它?舉例來說,如果我有兩個字符串:確定運行時的變量名稱

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

我A型到一個文本框,然後我想顯示使用消息框的內容。

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

這是可以反射的東西嗎?如果不是,我該如何做這項工作?

+1

是'A'和'B' *類*變量(又名字段),或*方法*變量(又名本地人)? –

+0

嗯,這實際上有所作爲?我實際上需要上述兩種情況下的功能。 – l46kok

+3

是的,它的確如此;字段可通過反射獲得;當地人不是 –

回答

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

你能描述一下具體的用例,而不是概念上的問題嗎?

+0

這基本上是我需要的。如果我提出一個詳細的問題,我會浪費每個人的時間,爲什麼我需要這個功能,因爲這個問題的範圍太窄了,因此,這個話題可能會被關閉。 – l46kok