Я работаю со страховкой и имею два разных типа полиса - автомобильный и бытовой, представленный двумя разными классами, автомобильный и бытовой.
Оба имеют несколько общих бит данных, поэтому оба наследуют от другого класса, называемого Policy.Когда пользователь входит в приложение, у него может быть политика в отношении двигателя или домашнего хозяйства, поэтому приложение должно отображать общую информацию и информацию, уникальную для Motor или Household.Чтобы инкапсулировать все это, у меня есть объект ответа, в котором есть и член Motor, и член домохозяйства, как показано ниже:
public class Response
{
...
private MotorPolicy _motorPolicy;
private HouseholdPolicy _householdPolicy;
....
}
Код ниже должен демонстрировать:
if (response.PolicyType == Enumerations.PolicyType.Motor)
{
lblDescription.Text = response.MotorPolicy.Description;
lblReg.Text = response.MotorPolicy.Reg;
}
else
{
lblDescription.Text = response.HouseholdPolicy.Description;
lblContents.Text = response.HouseholdPolicy.Contents;
}
У MotorPolicy нет свойства Contents, а у HouseholdPolicy нет свойства Reg.
Но я действительно хочу просто сделать:
if (response.PolicyType == Enumerations.PolicyType.Motor)
{
lblDescription.Text = response.Policy.Description;
...
}
Я пробовал использовать дженерики, не могнайти правильное решение.