繼續高階函式好玩有用的擴充套件(網咖行文)

2021-09-05 21:32:34 字數 1279 閱讀 1291

其實.net framework的風格一直在不斷的變化,變得越來越靈活,語法越來越舒服,但.net framework原來還有很多歷史遺留問題,使得我們在使用.net framework早期的類的時候總不能如同現代的類一樣方便。比如說,linq to xml新增的型別,就都具備建構函式同時初始化子成員的能力,而這個能力要能移植到原有的諸如asp.net和winform控制項上該多好啊?其實這並不難。

public static func//高階函式幫助方法類,這個不會與泛型委託func<...>衝突的,^_^

} 這個方法呼叫的時候:

var control = func.createcontainer( (container, child) => container.controls.add( child ), new image(), new hyperlink() )

注:網咖行文,方法無法測試,僅表達思路。

當然,我們可以固化一些現成的模版:

public static webhelper

} 呼叫的時候就可以省略第乙個引數:

var control = webhelper.createcontrol( new image(), new hyperlink() )

注:網咖行文,方法無法測試,僅表達思路。

public static webhelper

} 呼叫:

配合上面的方法,一次性構造控制項樹:

var control = webhelper.createcontrol(

new image(),

new hyperlink()

), loadusercontrol( ... )

);注:網咖行文,方法無法測試,僅表達思路。

寫到後面好像有點跑題,與高階函式沒啥關係了,其實不然,現在繼續扯回來。我們經常會遇到要對乙個方法連續呼叫的情況,例如ilist.add之類,而這些方法又經常不會返回自身導致可以鏈式呼叫,所以我們還可以做這樣的幫助方法:

public static func

} 呼叫:

var list = new list();

func.batchexecute( list.add, 1, 2, 3, 4, 5, 6, 7 );

注:網咖行文,方法無法測試,僅表達思路。

網咖行文,多有不便,今天就到此為止吧。最近函式式的討論很熱,所以想瞎寫兩篇文章來推波助瀾一下,呵呵。

有用的php函式

一 檔案靜態化 檔案讀取函式 檔案讀取函式 function php read file name fclose fd return buf 如果知道的是檔案的連線位址的話 fileaddress http localhost filename.html 檔案所在的位址 function php r...

極其有用的函式

如需使用sleep函式 那麼在程式的最開始加上下面這一行 注意呼叫的時候sleep的s要大寫 private declare sub sleep lib kernel32 byval dwmilliseconds as long 生成乙個指定範圍的隨機數 private function rndz ...

MySql 有用的函式

1.case when then else end 查詢結果列舉 和timestampdiff函式 說明 timestampdiff函式用於計算兩個時間的整數時間差 語法 timestampdiff interval,datetime expr1,datetime expr2 interval表示返...