上來聊幾句,也不是不得了,就是有點鬱悶,有興趣的職友請幫我理理頭緒。
要給公司現有係統做一個improvement,大概是這樣的,假如一個樹結構,每個結點有個checkbox,有的checked,有的unchecked,如果對樹的某個結點做一個操作,那麽這個結點的下層children中如果這個checkbox是checked,那麽也要實施這個操作,如此類推到最下層。這個問題不難,我寫個遞歸程序就解決了,問題是負責這塊的一個老頭同事不同意用遞歸,說將來不好維護,我就換了個方式,寫了個最 短小的method,用C#的yield return把需要進行操作的所有checked結點先找出來,然後再做這個操作,但測試時發現不行,因為這個操作有賴於上一層的結果,必須先做父結點,取得一個ID,然後才能做下一層結點,而yield return的結果是個沒有順序的集合,不能保證先做哪個後做哪個。我跟老頭談了這個問題,,希望能回到遞歸上來,但老頭很固執,堅持不用遞歸,說總可以找到別的辦法,真是頭大。這個樹結構是沒有規定深度的,不用遞歸就得按最大深度的可能性就是每個結點隻有一個CHILD這樣的深度來循環檢查,幾十行的程序變成了幾百行,還不知道能不能做出來。
我現在應該怎麽辦呢?老頭好象很難說服,堅持用遞歸怕得罪了他,而這樣下去,以後是不是都得按他的意思來?