引用未设置为实例错误

时间:2013-06-26 18:11:30

标签: c# object reference

我收到错误"引用没有设置为对象的实例"在启动时出现以下代码:

  switch (Popup_Data_Type_ComboBox.SelectedItem.ToString())
            {

我很确定发生此错误是因为尚未创建Popup_Data_Type_ComboBox因此无法获取sting值。我该如何解决这个问题?

好的,非常感谢我在检查中提供的所有帮助,如果Popup_Data_Type_ComboBox.SelectedItem == null并且它现在可以正常工作

3 个答案:

答案 0 :(得分:1)

最可能的问题是您的组合框尚未创建,或者没有选定的项目。在这种情况下,您必须明确处理:

if (Popup_Data_Type_ComboBox != null && Popup_Data_Type_ComboBox.SelectedItem != null)
{
    switch (Popup_Data_Type_ComboBox.SelectedItem.ToString())
    {
        //... 
    }
}
else
{
   // Do your initialization with no selected item here...
}

答案 1 :(得分:1)

首先验证Popup_Data_Type_ComboBox是否已实例化,然后验证是否已选择某个项目。如果你在启动时运行它,如你所说,那么可能没有选择任何项目。你可以查看:

if(Popup_Data_Type_ComboBox.SelectedItem != null)
{
    switch (Popup_Data_Type_ComboBox.SelectedItem.ToString())
        {
            //.....
        }
 }

答案 2 :(得分:1)

在切换之前添加一个检查,假设代码位于只处理Popup_Data_Type_ComboBox.SelectionChanged - 事件或类似事件的方法中:

if (Popup_Data_Type_ComboBox == null 
    || Popup_Data_Type_ComboBox.SelectedIndex < 0)
{
    // Just return from the method, do nothing more.
    return;
}

switch (...)
{

}