小编Nei*_*eil的帖子

C#类继承

我正在使用保险,有两种不同的政策类型 - 汽车和家用,由两个不同的类别,汽车和家庭代表.

两者都有几个共同的数据位,因此两者都将从另一个名为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)

我试过使用泛型,找不到合适的解决方案.

.net c# generics inheritance

7
推荐指数
3
解决办法
449
查看次数

标签 统计

.net ×1

c# ×1

generics ×1

inheritance ×1