想象一下,我有一个普通班Person
。然后我有那个类的专业,例如DanishPerson
和BritishPerson
。
现在我需要一个函数来返回正确的 Persons 实例,具体取决于他们所在的国家/地区,或者一种轻松确定他们是什么类型的人的方法。所以我有这个功能:
List<Person> GetPersonsByCountry(int countryId)
{
// query database, and get list of Persons in that country using EF inheritance
// return list of persons
}
人员列表包含类型为或DanishPerson
的对象BritishPerson
。根据类型,我需要在我的 UI 中显示正确的 ViewModel。因此,如果列表包含类型为 的丹麦人DanishPerson
,我需要显示一个 UI 来显示丹麦特定属性(以及更多)。
现在我的问题是你如何以最好的方式做到这一点?我想我总是可以使用 if/else using typeof
,但我希望有一种更优雅,也许是通用的方式?我在想可能有一些模式可以做到这一点,因为这对我来说似乎是一个常见问题,在处理专业时?