Linq委托實(shí)例化淺談
在向大家詳細(xì)介紹Linq委托實(shí)例化之前,首先讓大家了解下委托的定義,然后全面介紹Linq委托實(shí)例化。
委托的定義:
- delegate string ProcessString( string input );
委托可以理解為一個(gè)函數(shù)指針,它定義了一個(gè)函數(shù)的原型
Linq委托實(shí)例化和使用:
- ProcessString p = new ProcessString( LowerIt );
- //委托的實(shí)例化就是將委托變量指向一個(gè)符合委托原型的實(shí)際方法
- foreach (string name in foxRiver8)
- {
- Console.WriteLine( p ( name ) );
- //此時(shí)的 p 實(shí)際上就是 LowerIt() 方法
- }
Linq委托實(shí)例化指向一個(gè)符合委托原型的實(shí)際方法:
- private string LowerIt
- (string input)
- {
- return input.ToLower();
- }
小結(jié):
◆委托可以看作是托管版本的函數(shù)指針
◆委托只對(duì)方法的原型(簽名)進(jìn)行約束
◆委托可以方便我們在程序運(yùn)行時(shí)動(dòng)態(tài)決定對(duì)象的行為
委托和接口有什么區(qū)別?
◆委托約束單一方法
◆接口約束的內(nèi)容更加豐富
我們在以前的課程中學(xué)習(xí)過哪些接口或委托?
IHttpHandler 是一個(gè)接口
AutoComplete 控件中的 ServiceMethod 可以看作是一個(gè)委托,兩者的具體原型請參考Y2的 ASP.NET 課程 和 AJAX 課程
【編輯推薦】