继承的类列表列表框类名在此点无效

时间:2013-07-27 02:04:11

标签: c# .net winforms

我正在创建一个WinForms应用程序,我有一个数据源为ObservableCollection<ParentClass>的Listbox,我正在尝试根据类的子类设置特定标签。我收到错误“类名在此时无效”。示例代码:

using System;    
public class Parent
{
    public Parent() { }

    public class ChildA : Parent
    {
        public ChildA() { }
    }
}

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        ObservableCollection<Parent> listBoxSource = 
               new ObservableCollection<Parent>();

        listBox.DataSource = listBoxSource;

    }

    private void customerListBox_SelectedIndexChanged(object sender, 
                 EventArgs e)
    {

        if (customerListBox.SelectedItem.GetType() ==
              Parent.ChildA) // <---Error Here
        {
            //Code Here
        }
    }    
}

是否有更好的方法根据元素的类型执行操作?

1 个答案:

答案 0 :(得分:0)

改变这个:

 if (customerListBox.SelectedItem.GetType() == Parent.ChildA)

为:

 if (customerListBox.SelectedItem is Parent.ChildA)

或正如你所做的那样:

 if (customerListBox.SelectedItem.GetType() == typeof(Parent.ChildA))

意识到使用运算符“is”避免检查对象是否为空。