我正在使用保险,有两种不同的政策类型 - 汽车和家用,由两个不同的类别,汽车和家庭代表.
两者都有几个共同的数据位,因此两者都将从另一个名为Policy的类继承.当用户登录应用程序时,他们可能有电机或家庭政策,因此应用程序需要显示通用信息以及Motor或Household独有的信息.为了封装所有这些,我有一个具有Motor成员和Household成员的响应对象,如下所示:
public class Response
{
...
private MotorPolicy _motorPolicy;
private HouseholdPolicy _householdPolicy;
....
}
Run Code Online (Sandbox Code Playgroud)
以下代码应证明:
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;
}
Run Code Online (Sandbox Code Playgroud)
MotorPolicy没有Contents属性,而HouseholdPolicy没有Reg属性.
但我真的想干脆做到:
if (response.PolicyType == Enumerations.PolicyType.Motor)
{
lblDescription.Text = response.Policy.Description;
...
}
Run Code Online (Sandbox Code Playgroud)
我试过使用泛型,找不到合适的解决方案.