Estoy trabajando con un seguro y tengo dos tipos de pólizas diferentes: el motor y el hogar, representados por dos clases diferentes, Motor y Hogar.C# Clase Herencia
Ambos tienen varios bits de datos en común, por lo que ambos heredarían de otra clase llamada Política. Cuando un usuario inicia sesión en la aplicación, puede tener un motor o una política de hogar, por lo que la aplicación debe mostrar la información genérica y la información exclusiva de Motor o Hogar. Para encapsular todo esto, tengo un objeto de respuesta que tiene tanto un miembro de motor y un miembro del hogar, tal como se muestra a continuación:
public class Response
{
...
private MotorPolicy _motorPolicy;
private HouseholdPolicy _householdPolicy;
....
}
El código siguiente debe demostrar:
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;
}
El MotorPolicy no lo hace tiene propiedad Contents y HouseholdPolicy no tiene una propiedad Reg.
pero realmente quiero hacer simplemente:
if (response.PolicyType == Enumerations.PolicyType.Motor)
{
lblDescription.Text = response.Policy.Description;
...
}
He intentado usar los genéricos, podría no pudieron encontrar la solución adecuada.
Tiene una clase base llamada Política, usar una interfaz en cambio no cambiaría nada. – jgauffin
Esa no es la forma en que entiendo bien el diseño de oo. Las políticas domésticas no tienen un número de registro, y las políticas de motor no tienen contenido. Por lo tanto, el diseño es engañoso –
OK ... entonces él puede OP puede definir así de otra manera ... MotorPolicy: Policy, IPolicy – RameshVel