前天做一道面試題,要我用C#實現累加,想用Lambda寫,結果面試官急匆匆地過來,Timeout了,可能是面試官的午飯時間到了吧。
今天補上吧,溫習一下,下次寫的要快點。
首先分享一個遞歸幫助類,寫這個類的時候參考了老趙和裝配腦袋的博客,在此表示感謝。這個類的實現思路很簡單,將包含算法描述Lambda當作參數傳遞並調用。
下面的代碼就是幾個這個幫助類實現的,為了方便在微博上發布,壓縮了一下代碼。
C#中,如果方法定義中調用了方法本身,是非法的,除非用靜態方法,如果沒有這個限制,就可以寫成一句話遞歸,不知道園友們有沒有辦法。
有一個思路,就用dynamic動態構造一個包含RFunc靜態方法的類,但我dynamic用的不多,不知道如何添加靜態字段/方法,如果有知道的希望不吝賜教。