我有基类 A 和子类。我正在寻找一种通过类的树结构构建某种类型的转换的方法。
class A
{
prop b;
prop c;
prop d;
prop E[] e;
prop F f;
}
class E
{
prop g;
prop h;
prop J j;
}
class J
{
prop k;
}
class F
{
prop l;
}
现在我想知道我是否可以通过接口或抽象类进行一些继承,这样会给我各种类型的转换:
(Cast1)A -> active props: c,d,E.g,E.J.k
(Cast2)A -> active props: d,F.l
(Cast3)A -> active props: b, E.h,E.g
等等
如何做到这一点?我不需要总是使用类中的每个属性,所以这种转换对我很有用。
结果将是:
var f1 = a as Cast1;
Console.WriteLine(f1.c);
Console.WriteLine(f1.d);
Console.WriteLine(f1.E[0].g);
Console.WriteLine(f1.E[0].h);// this NOT
Console.WriteLine(f1.E[0].J.k);
Console.WriteLine(f1.E[1].g);
var f2 = a as Cast2;
Console.WriteLine(f2.d);
Console.WriteLine(f2.F.l);
var f3 = a as Cast3;
Console.WriteLine(f3.b);
Console.WriteLine(f3.E[0].h);
Console.WriteLine(f3.E[1].h);
Console.WriteLine(f3.E[2].h);
Console.WriteLine(f3.E[2].g);