gpt4 book ai didi

C# 类继承

转载 作者:太空狗 更新时间:2023-10-29 20:03:47 24 4
gpt4 key购买 nike

我在保险行业工作,有两种不同的保单类型 - 机动车和家庭,分别代表两个不同的类别:机动车和家庭。

两者都有一些共同的数据位,因此它们都继承自另一个名为 Policy 的类。当用户登录应用程序时,他们可能拥有汽车或家庭政策,因此应用程序需要显示通用信息以及汽车或家庭独有的信息。为了封装所有这些,我有一个响应对象,它同时包含一个 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;
...
}

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

最佳答案

您的响应只需要一个 Policy 类型,然后您可以将 MotorPolicy 或 HouseholdPolicy 类型存储到其中。

然后你的响应只需要检查数据类型

if (response.Policy is MotorPolicy) ....

或者有一个抽象方法或属性从 Policy 类型的抽象方法返回数据,该类型由子类完全实现并返回适当的 reg 数据或内容数据。

关于C# 类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com