2014-09-24 61 views
0

是否有可能(以及如何)在方法中匿名使用聲明變量?沒有在代碼本身中使用他們的名字。我必須聲明它們的名稱(用於可讀性+調試)。但我想不使用它們。C#中的匿名變量用法?

我希望它可以像通過反射列出一個類的所有方法名稱。


例子:

private static void TestVars() 
{ 
    string dsjkfd4378957439898 = "hello world"; 
    string hgf43789 = "hello world2"; 
    string ntgdklf4589 = "hello world3"; 
    // more strings 

    // print names of ALL string variables above (and their values) 
    // like this but without knowing the names of the string variables 
    Console.WriteLine("dsjkfd4378957439898" + " = " + dsjkfd4378957439898); 
    // ... 
} 
+2

請詳細說明您的問題。很難理解你問什麼。 – Reniuz 2014-09-24 06:31:06

+1

你的目標是什麼? – 2014-09-24 06:31:18

+0

爲什麼不使用所需類型或對象的一組元素,如果您將使用不同的... – blfuentes 2014-09-24 06:33:06

回答

4

不行,這不行。變量必須有名稱。

我要冒險猜測,並說出你可能想要的是一個適當的數據結構,如Dictionary<TKey, TValue>(如果你想要名字)或List<T>(如果你不想要名字)。一個適當的調試器將能夠檢查數據結構。

你無法列出變量的原因是像變量名稱這樣的東西沒有存儲在結果字節碼中 - 所有剩下的可能是一個索引。另外,一些變量可能會被優化掉,並在非調試版本中完全消失。變量名稱和位置將存儲在用於調試構建的調試信息中,但沒有標準的訪問方式,因爲它只是調試器應該使用的信息,而不是您自己的邏輯。

+0

我沒有問兩個問題。我知道如何列出和調用類的方法。我舉了一個我想如何處理變量的例子。 – Bitterblue 2014-09-24 06:46:42

+0

哦,對不起。我想我誤解了。我添加了一個解釋,爲什麼你不能列出變量。 – 2014-09-24 06:48:38