2010-11-05 61 views
0

比方說,我想這樣的功能:如何在C#中將變量添加到對象的名稱中?

private void ShowLabel(byte Variable) 
{ 
labelXXX.Show(); 
} 

但隨着可變的價值,而不是XXX。可能嗎?

+3

你可以用Reflection來做到這一點,但它不是微不足道的。你想達到什麼目的? – 2010-11-05 23:45:35

+0

WPF?贏取表格? ASP.NET? – BrokenGlass 2010-11-05 23:46:33

+2

來自PHP的另一位程序員是我的猜測;-) – 2010-11-05 23:47:54

回答

3

你不需要思考,你可以使用

但使用Dictionary<byte, Label>as suggested by CodeInChaos ,會更好。

+0

我站好了。我的非GUI焦點正在顯示。很好的答案。 – 2010-11-06 00:04:58

+0

噢,謝謝!所以有一個簡單的方法來做到這一點。 – Ethesen 2010-11-06 00:07:34

2

您可以創建一個標籤數組並使用Variable的值作爲該數組的索引。但你的問題很模糊。你能否提供更多信息,說明你爲什麼需要這樣做?

+0

其實我並不需要這個。 :P我只是好奇,如果這是可能的,因爲我無法找到任何有關它。我對其他編譯器的功能並不感興趣,因爲我只是寫了一個函數作爲例子,只是可以簡單地將一個變量和對象的名字組合起來,但我想這不是不幸的。 :) – Ethesen 2010-11-06 00:04:18

1

雖然你可以用反射做到這一點,但它聞起來有味道。如果你有很多標籤只能用一個數字來區別,可能在運行時創建它們並將它們放在List或者字典中,這樣你就可以從ID中查找它們。

您可以迭代父控件的所有子項,將它們的名稱與想要查找所需控件的名稱進行比較。但那有一種難聞的氣味。

相關問題