В комментариях к моему другому ответу я сказал, что если вы хотите написать одну функцию, вам все равно придется выполнять проверки.Однако вы можете написать несколько отдельных функций, которые устанавливают значения ваших элементов управления.Это уменьшит необходимость выполнения проверок, но для потребуется больше кода.
Создайте свои функции:
public void SetTControls()
{
Value1_tbx.Visible = true;
Value1_tbx.Text = some_text_value;
Value_ddl.Visible = false;
Value_Date_tbx.Visible = false;
Value_Date_calendar_img.Visible = false;
Value_rbl.Visible = false;
}
public void SetSControls()
{
Value1_tbx.Visible = false;
Value_ddl.Visible = true;
Value_ddl.Text = some_select_box_value;
Value_Date_tbx.Visible = false;
Value_Date_calendar_img.Visible = false;
Value_rbl.Visible = false;
}
public void SetDControls()
{
Value1_tbx.Visible = false;
Value_ddl.Visible = false;
Value_Date_tbx.Visible = true;
Value_Date_calendar_img.Visible = true;
Value_Date_tbx.Text = some_date_value;
Value_rbl.Visible = false;
}
public void SetRControls()
{
Value1_tbx.Visible = false;
Value_ddl.Visible = false;
Value_Date_tbx.Visible = false;
Value_Date_calendar_img.Visible = false;
Value_rbl.Visible = true;
Value.rbl.Text = some_value;
}
Тогда вы можете очистить свой if /оператор else, подобный следующему:
if (attribute_type == 'T')
SetTControls();
else if (attribute_type == 'S')
SetSControls();
else if (attribute_type == 'D')
SetDControls();
else if (attribute_type == 'R')
SetRControls();
Как я уже сказал, он требует больше кода, но определенно очищает ваш оператор if / else.Надеюсь, это поможет!