比方說,我想這樣的功能:如何在C#中將變量添加到對象的名稱中?
private void ShowLabel(byte Variable)
{
labelXXX.Show();
}
但隨着可變的價值,而不是XXX。可能嗎?
比方說,我想這樣的功能:如何在C#中將變量添加到對象的名稱中?
private void ShowLabel(byte Variable)
{
labelXXX.Show();
}
但隨着可變的價值,而不是XXX。可能嗎?
你不需要思考,你可以使用
Controls.Find("label" + Variable.ToString())
FindControl("label" + Variable.ToString())
FindName("label" + Variable.ToString())
但使用Dictionary<byte, Label>
,as suggested by CodeInChaos ,會更好。
我站好了。我的非GUI焦點正在顯示。很好的答案。 – 2010-11-06 00:04:58
噢,謝謝!所以有一個簡單的方法來做到這一點。 – Ethesen 2010-11-06 00:07:34
您可以創建一個標籤數組並使用Variable的值作爲該數組的索引。但你的問題很模糊。你能否提供更多信息,說明你爲什麼需要這樣做?
其實我並不需要這個。 :P我只是好奇,如果這是可能的,因爲我無法找到任何有關它。我對其他編譯器的功能並不感興趣,因爲我只是寫了一個函數作爲例子,只是可以簡單地將一個變量和對象的名字組合起來,但我想這不是不幸的。 :) – Ethesen 2010-11-06 00:04:18
雖然你可以用反射做到這一點,但它聞起來有味道。如果你有很多標籤只能用一個數字來區別,可能在運行時創建它們並將它們放在List或者字典中,這樣你就可以從ID中查找它們。
您可以迭代父控件的所有子項,將它們的名稱與想要查找所需控件的名稱進行比較。但那有一種難聞的氣味。
你可以用Reflection來做到這一點,但它不是微不足道的。你想達到什麼目的? – 2010-11-05 23:45:35
WPF?贏取表格? ASP.NET? – BrokenGlass 2010-11-05 23:46:33
來自PHP的另一位程序員是我的猜測;-) – 2010-11-05 23:47:54