c# - 如果使用继承,如何检查列表的类型

标签 c# winforms

我目前正在开发一个 C# 程序,该程序创建对象 Task 的列表,对象 Task 是一个基类,许多其他对象继承自它。我想要的是比较所述列表中对象之一的类型,以查看应该打开哪个表单才能对其进行编辑。

这是我已经创建的代码。

private void itemEdit_Click(object sender, EventArgs e)
    {
        int edi = taskNameBox.SelectedIndex;
        Task checkTask = todoList.ElementAt(edi);

        if(checkTask.GetType is Note)
        {
            noteBuilder editNote = new noteBuilder(todoList);
            editNote.Show();
        }

        else if(checkTask.GetType is extendedTask)
        {
            extendedTaskBuilder editTask = new extendedTaskBuilder(todoList);
            editTask.Show();
        }

        else if(checkTask.GetType is Reminder)
        {
            reminderBuilder editReminder = new reminderBuilder(todoList);
            editReminder.Show();
        }

        else if (checkTask.GetType is Appointment)
        {
            appointmentBuilder editAppointment = new appointmentBuilder(todoList);
            editAppointment.Show();
        }
    }

在次要说明中,如果不是在表单之间传递列表并生成显示信息的表单的新对象,而是在表单之间传递单个对象,并且每次新元素时只更新表单,这样会更容易吗被添加到列表中。

非常感谢

最佳答案

你试过这样检查吗:

if (checkTask is Note)
{

}
...

关于c# - 如果使用继承,如何检查列表的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926398/

相关文章:

winforms - 如何将 WinForm 窗口捕获为不带插入符号的位图

c# - 如何导航到 WP7 中的不同数据透视项

C# 执行速度 : equal (==) vs not equal (! =)

c# - 如何向现有界面添加属性?

c# - WPF ListView ItemTemplate 内的文本框绑定(bind)

c# - 通过服务器从 MySQL 数据库检索图像

javascript - stoppropagation 如何与循环一起使用?

c# - Powershell:无法与 .Net 程序集中存储的表单交互

winforms - Winform 列表框未正确锚定

c# - 如何从不同线程编辑 Windows 窗体控件