我正在构建一个GUI,其中我有两个类,学生和研究生。研究生是学生的一个子班。用户将填写表单以将该学生添加到列表中。为了将上述信息添加到视图表单中,我需要检查所选项目的类型。我试过了
if(view_list.selectedItem.GetType == Student)
但它不起作用。如何检查所选项目的类型?
发布于 2021-10-13 05:39:02
简而言之,您需要将XXX.GetType()与typeof(YOUR_TYPE)进行比较。

至于原因,如果您曾经关注过Visual Studio提供的IntelliCode提示,您应该会看到函数object.GetType()返回Type

但是,Student或任何其他原语类型(如int、string等)的类型为class

不能比较两个不同类型的值(在这种情况下,左边是Type,右边是class)
typeof()所做的是获取类的Type。

发布于 2021-10-13 05:19:01
有几个问题。您尝试使用的GetType实际上是一个方法,而不是一个属性,因此您需要将其调用为GetType()。
接下来,您需要使用typeof(Student)进行比较。
如果view_list是Winforms ListView,那么SelectedItem应该以大写字母S开头
所以你的代码应该是。
if (view_list.SelectedItem.GetType() == typeof(Student))
{
//Do your stuff
}https://stackoverflow.com/questions/69549474
复制相似问题