我有一個結構,看起來像這樣:參考變量名動態
public struct ChannelSettings
{
public double slider20Hz;
public double slider25Hz;
public double slider31_5Hz;
public double slider40Hz;
}
,我通過我的用戶界面對象循環時滑塊值改變這樣的:
foreach (Slider slider in grdEqSliders.Children)
{
// slidername = slider.Name;
switch(currentChannel)
{
case 1:
// Assign to channel.slidername
break;
case 2:
// Assign to channel.slidername
break;
default:
break;
}
}
我的問題是,有沒有辦法讓我得到滑塊名稱,然後把它轉換成我可以在我的結構中直接引用的東西? 例如,我想將slider.Name = "slider_20Hz"
轉換爲我在結構中使用的變量slider20Hz
。
那麼,你可以打開一個字符串;只是這四個字符串中的每一個都是這些字符串,而不是1,2,3,4。您可以使用反射,但在這種情況下,'switch'可能更簡單。 – Servy 2013-05-06 19:26:40
雖然我會有多個結構,並且需要確保將值放入正確的值。 – 2013-05-06 19:28:07
訪問適當的變量(一旦你有它的名字)解決[此問題在這裏](http://stackoverflow.com/questions/5218625/get-and-set-the-variable-value-by-passing-name ) - 你可以使用反射。一個(可能)更好的解決方案,如果它適用於你的代碼庫,將會把雙精度字節存儲在一個字典中 - 當前的var「name」成爲關鍵字。 – 2013-05-06 19:33:35