[問題] 請教有關Reflection的關念
我現在有一個滿大的class階層,大約有一百八十幾個,
這結構是對映到一個xml的規範,
當我在parse xml文件時,會用.net把xml文件轉成對映到這class階層的結構,
這樣方便我以物件階層的方式來處理xml。
我有個需求,我需要知道class A裡面是否有class B,但A裡面的Fields也是物件,
這樣會有許多層,於是我就想到用遞迴來寫,可是一百八十幾個class,
我在寫遞迴就要寫一百八十幾個switch 的 case,
我才寫幾個case就累了,
於是就想用Reflection來寫,Reflection可以用GetFields,剛剛試了一下,
應該可以使用。
我想問的是這兩種方式哪個比較好?因為我想到用Reflection不就是run time時才決定,
那會不會效能較差,不過遞迴雖然是有編譯過,但以前老師總是說遞迴會一直做
function call,效能也是會比較差。不過現在在c#是不是比較不在意function call的
cost?總覺得物件導向在設計時都會把function定清楚,做的事情相當單純,function
老是call來call去的。
請問一下各位,要是你們會用遞迴來寫,還是用Reflection來寫?哪一種比較好?
如果我上面說的觀念有錯,也麻煩糾正我一下。
謝謝大家。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.182.5
推
07/27 16:33, , 1F
07/27 16:33, 1F
→
07/27 16:33, , 2F
07/27 16:33, 2F
推
07/29 01:12, , 3F
07/29 01:12, 3F
推
07/29 01:12, , 4F
07/29 01:12, 4F
推
07/29 01:20, , 5F
07/29 01:20, 5F
→
07/31 13:52, , 6F
07/31 13:52, 6F
→
07/31 13:52, , 7F
07/31 13:52, 7F
→
07/31 13:53, , 8F
07/31 13:53, 8F