我正在创建一个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
}
}
}
是否有更好的方法根据元素的类型执行操作?
答案 0 :(得分:0)
改变这个:
if (customerListBox.SelectedItem.GetType() == Parent.ChildA)
为:
if (customerListBox.SelectedItem is Parent.ChildA)
或正如你所做的那样:
if (customerListBox.SelectedItem.GetType() == typeof(Parent.ChildA))
意识到使用运算符“is”避免检查对象是否为空。