0

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

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
        }
    }    
}

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

4

1 回答 1

0

改变这个:

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

至:

 if (customerListBox.SelectedItem is Parent.ChildA)

或者就像你在做的那样:

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

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

于 2013-07-27T02:07:46.290 回答