Я хотел бы использовать его не только для сравнения. У меня может быть больше операций внутри оператора if. Должен ли выбранный элемент передаваться как объект, строка или просто достаточно хорошо закодирован?
равильно передать выбранный элемент ComboBox в качестве параметра метода?
Или есть ли какое-либо преимущество в этом?
У меня ограниченный опыт разработки программ и передачи параметров.
Вот пример метода, который возвращает противоположный цвет выбранного.
XAML<ComboBox x:Name="cboColors"
HorizontalAlignment="Left"
Margin="179,82,0,0"
VerticalAlignment="Top"
Width="120"
SelectedIndex="0">
<System:String>Red</System:String>
<System:String>Orange</System:String>
<System:String>Yellow</System:String>
<System:String>Green</System:String>
<System:String>Blue</System:String>
<System:String>Purple</System:String>
</ComboBox>
С SharpHARDCODED
Выбранный элемент ComboBox устанавливается в операторе if
// Find Opposite Color
//
public String OppositeColor()
{
if ((string)cboColors.SelectedItem == "Red")
{
return "Green";
}
else if ((string)cboColors.SelectedItem == "Orange")
{
return "Blue";
}
else if ((string)cboColors.SelectedItem == "Yellow")
{
return "Purple";
}
else if ((string)cboColors.SelectedItem == "Green")
{
return "Red";
}
else if ((string)cboColors.SelectedItem == "Blue")
{
return "Orange";
}
else if ((string)cboColors.SelectedItem == "Purple")
{
return "Yellow";
}
else
{
return string.Empty;
}
}
// Display Opposite Color Button
//
private void button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(OppositeColor());
}
Передать параметр
Выбранный элемент ComboBox устанавливается в объект, а затем передается в метод
// Find Opposite Color
//
public String OppositeColor(Object color)
{
if (color.Equals("Red"))
{
return "Green";
}
...
}
// Display Opposite Color Button
//
private void button_Click(object sender, RoutedEventArgs e)
{
// Set Selected Color
Object color = cboColors.SelectedItem;
// Display
MessageBox.Show(OppositeColor(color));
}