2015-05-08 3 views
-1

Когда DeliveryMethodComboBox не имеет SelectedItem, опорный объект поЧистый способ поймать ошибки Ссылка на объект не установлен

не установлено на экземпляр объекта.

ошибка появляется.

Каков наилучший способ решить эту проблему? В этом примере я добавил попытку и поймал.

try 
{ 
    DeliveryMethodLabel2.Text = DeliveryMethodComboBox.SelectedItem.ToString(); 
} 
catch 
{ 
    DeliveryMethodLabel2.Text = ""; 
} 
+0

'NullReferenceException' обычная ситуация для начинающих программистов. Предоставленная ссылка должна помочь вам понять проблему. Затем используйте отладчик, чтобы найти, что/где /, когда у вас есть переменная, которая является «null». –

+0

Лучший способ - проверить, был ли выбран элемент. Не используйте блоки try/catch для чего-то подобного. – Dirk

+0

Думайте об исключениях, отличных от ошибок. Когда я говорю с начинающими программистами, я говорю им думать об исключении как о «то, чего они никогда не видели». Так, например, кто-то не выбирает в выпадающем списке - вы должны ожидать этого. Это обычное дело, это произойдет. Это делает его ошибкой, а не исключением. Исключена система с памятью. Это не то, что мы ожидаем, как обычно. Надеюсь, это поможет немного прояснить ситуацию. – dman2306

ответ

1

Я предполагаю, что вы имеете в виду, что значение равно нулю

** Подразумевается у вас нет провалов в вашем списке, и что вы только о том, есть ли выбор или нет.

if(DeliveryMethodComboBox.SelectedIndex != -1) 
{ 
    DeliveryMethodLabel2.Text = DeliveryMethodComboBox.SelectedItem.ToString(); 
} 
else 
{ 
    DeliveryMethodLabel2.Text = ""; 
} 

В противном случае, если DeliverMethodComboBox может быть пустым, просто изменить, если

if(DeliveryMethodComboBox != null && DeliveryMethodComboBox.SelectedIndex != -1) 

 Смежные вопросы

  • Нет связанных вопросов^_^