我有基类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;
}
现在我想知道如果我能做到通过接口或抽象类继承的一些会wchich给我各种各样的种类蒙上这样的:
(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);
你打算做什么,你的主动道具是什么意思? –
用'道具:c,d,E.g,E.J.k',带有'道具:d,f.l'和接口'Cast3'的'Cast2',用'道具:b,E.h,E.g'创建界面'Cast1'。他们在你们班分别实施 –
(Cast1)A。将显示在属性列表c,d,E中。 (Cast1)A.E。将显示在属性列表g,J.(Cast1)A.E.J。将显示k。 – maszynaz