http://www.dotblogs.com.tw/regionbbs/archive/2012/08/15/from.delegate.to.lambda.aspx
假如剋戶要的效果像這樣 - 一個偵測句子有無特定關鍵字的文字小遊戲 (雖然真實的剋戶要求絕無可能這麼簡單)
新到不能再新的初心者寫出這段吐槽到不行的CODE
身為一個職業的嫻熟PG,絕不允許重複代碼,於是大刀砍~
抽抽抽~重複的地方全抽出來寫個公用方法,一片蛋糕
但是有時候並不是很好(雖然自我感覺良好),因為如果程式碼重複的代碼僅限於一個方法之中
如果抽成公用方法方法的話,這將是永遠只有同一叫用來源的方法
這不打緊,如果方法的順序排的很亂,移至定義跳來跳去還沒看CODE就先轉暈了
這還不包括封裝的方式不夠好,不小心被誤用,由其他的來源叫用這個公用方法
訴求很簡單:有沒有辦法(限制)在一個方法之中,把重複的代碼包起來執行
答案很簡單,使用委派就好了
但是直接使用自訂的委派物件不是個好作法,如上所言
不會在別的地方用到,所以特地宣告一個委派物件有點多餘,甚至有可能占用掉一個別人可能需要的命名
我想得到的 .NET 不太可能沒想到
神人文:http://www.dotblogs.com.tw/atowngit/archive/2011/02/23/21523.aspx參拜完神人文章之後就知道有現成的委派物件可以直接使用。
利用Func
而且泛型委派可以直接取得同層的變數
這個案例其實適合使用Func
因此 lineMaker 為了判斷來源 多了一個 switch
實際上要用 Action
沒有留言:
張貼留言