我有两个A类和B类。两个都有大多数属性共同,都有几个不同的字段。现在使用基于某些条件的任一类。使用他们的共同财产。我无法更改使用继承的模式。
例如
public class A
{
public string field1 { get; set; };
public string field2 { get; set; };
public string field3 { get; set; };
public string field4 { get; set; };
public string field5 { get; set; };
public string field6 { get; set; };
public string field7 { get; set; };
public string field8 { get; set; };
public string anotherA1 { get; set; };
public string anotherA2 { get; set; };
}
public class B
{
public string field1 { get; set; };
public string field2 { get; set; };
public string field3 { get; set; };
public string field4 { get; set; };
public string field5 { get; set; };
public string field6 { get; set; };
public string field7 { get; set; };
public string field8 { get; set; };
public string anotherB1 { get; set; };
public string anotherB2 { get; set; };
}
A a = new A();
B b = new B();
dynamic d;
if(isDo)
d= a;
else
d= b;
string strField = d.field1;
string test = d.field3;
请告诉我实现这一目标的最佳方法。
答案 0 :(得分:1)
你应该在OOP中学习继承:
public class Common
{
public string field1 { get; set; };
public string field2 { get; set; };
public string field3 { get; set; };
public string field4 { get; set; };
public string field5 { get; set; };
public string field6 { get; set; };
public string field7 { get; set; };
public string field8 { get; set; };
}
public class A : Common
{
public string anotherA1 { get; set; };
public string anotherA2 { get; set; };
}
public class B : Common
{
public string anotherB1 { get; set; };
public string anotherB2 { get; set; };
}
A a = new A();
B b = new B();
Common d;
if(isDo)
d= a;
else
d= b;
string strField = d.field1;
string test = d.field3;
答案 1 :(得分:1)
如果你不能自己修改这些类,并且你绝对想拥有一个通用接口,那么你需要编写自己的Adapters。