Я нахожу SelectedIndex
проще, потому что вы можете работать с числом, а когда нет выбора, вам не нужно обрабатывать нуль. SelectedItem может быть нулевым, и вы должны помнить об этом при попытке получить доступ к этому свойству.
Обычно SelectedItem и SelectedIndex используются внутри SelectedIndexChanged события и легко забыть Nothing возможность
Dim curValue = Combo.SelectedItem.ToString() ' <- Possible NullReferenceException'
.....
Однако, если мы просто говорим о сравнении, то есть очень небольшое преимущество для SelectedIndex, потому что есть нет загрузки и тестирования строки.
ComboBox b = new ComboBox();
if(b.SelectedItem == "One")
Console.WriteLine("OK");
if(b.SelectedIndex == 0)
Console.WriteLine("OK");
IL код
IL_0000: newobj System.Windows.Forms.ComboBox..ctor
IL_0005: stloc.0 // b
IL_0006: ldloc.0 // b
IL_0007: callvirt System.Windows.Forms.ComboBox.get_SelectedItem
IL_000C: ldstr "One"
IL_0011: bne.un.s IL_001D
IL_0013: ldstr "OK"
IL_0018: call System.Console.WriteLine
IL_001D: ldloc.0 // b
IL_001E: callvirt System.Windows.Forms.ListControl.get_SelectedIndex
IL_0023: brtrue.s IL_002F
IL_0025: ldstr "OK"
IL_002A: call System.Console.WriteLine
Но мы находимся в области микро-оптимизации и, как сказано в комментарии, использовать то, что является более удобным для чтения для вас.
Что, по вашему мнению, более читаемо? –
Это зависит только от того, что вы и ваша команда решаете, более читабельны и обслуживаемы. – Oded
Хорошо, мне просто интересно, работает ли процессор лучше, чем другой –