我有基類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