У меня есть структуру, которая выглядит следующим образом:Ссылка имя переменной динамически
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. Вы можете использовать отражение, но в случае, если этот простой «переключатель», вероятно, проще. – Servy
Я буду иметь несколько структур, хотя и должен убедиться, что значение получает правильное значение. –
Доступ к соответствующей переменной (после вашего имени) адресуется [здесь] (http://stackoverflow.com/questions/5218625/get-and-set-the-variable-value-by-passing-name) - вы можете сделать это, используя отражение. Лучшее решение (возможно), если оно работает для вашей кодовой базы, будет хранить двойники в словаре - текущее имя переменной «становится» ключом. –