Представь, что у меня есть общий класс 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
.В зависимости от типа, мне нужно отобразить правильную ViewModel в моем пользовательском интерфейсе.Поэтому, если в списке содержатся датчане типа DanishPerson
, мне нужно отобразить один пользовательский интерфейс, который будет отображать специфические свойства датского языка (и не только).
Теперь мой вопрос: как вы делаете это наилучшим образом?Я думаю, что я всегда мог бы использовать if / else, используя typeof
, но я надеялся на более элегантный и, возможно, общий способ?Я думал, что для этого могут быть какие-то модели, так как мне кажется, что это общая проблема при работе со специализациями?