我正在从事保险工作,有两种不同的保单类型 - 汽车和家庭,由两个不同的类Motor和Household表示。
这两种类型都有一些共同的数据,因此它们都将继承另一个名为Policy的类。当用户登录应用程序时,他们可能拥有汽车或家庭保单,因此应用程序需要显示通用信息以及特定于Motor或Household的信息。为了封装所有这些内容,我有一个响应对象,其中包含一个Motor成员和一个Household成员,如下所示:
以下代码应该演示:
这两种类型都有一些共同的数据,因此它们都将继承另一个名为Policy的类。当用户登录应用程序时,他们可能拥有汽车或家庭保单,因此应用程序需要显示通用信息以及特定于Motor或Household的信息。为了封装所有这些内容,我有一个响应对象,其中包含一个Motor成员和一个Household成员,如下所示:
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;
...
}
我尝试使用泛型,但是找不到正确的解决方案。