我有三种类型:
Patient
Inpatient : Patient
Outpatient : Patient
我有一个填充基础患者及其所有属性的方法:PatientRepository.FillPatient()
并返回一个Patient
对象。
然后我需要检查并查看Patient
类型是什么,然后向下转换为 anOutpatient
或Inpatient
.
当我尝试向下转换时,它会抛出Unable to cast object of type 'Patient' to type 'Inpatient'.
这是一个运行时错误。
if (patient.Type == PatientType.Inpatient)
{
var inpatient = (Inpatient)patient;
return inpatient;
}
public enum PatientType
{
Inpatient, Outpatient
}
我不知道为什么。我从根本上在这里做错了什么吗?