C# action,delegate,func的用法和區(qū)別

private delegate void BuyBook();
public static void Book(){Console.WriteLine("我是提供書籍的");}
BuyBook buybook = new BuyBook(Book);4:小明給錢拿書(觸發(fā))
buybook();Action的用法
Action BookAction = new Action(Book);BookAction();
static void Main(string[] args){Action<string> BookAction = new Action<string>(Book);BookAction("百年孤獨(dú)");}public static void Book(string BookName){Console.WriteLine("我是買書的是:{0}",BookName);}
3:現(xiàn)在小明又改變主意了,我不僅要自己選擇書籍,我還要在一個(gè)牛逼的書籍廠家買,有沒有這種方式呢,那么告訴你有,Action<in T1,in T2>
static void Main(string[] args){Action<string,string> BookAction = new Action<string,string>(Book);BookAction("百年孤獨(dú)","北京大書店");}public static void Book(string BookName,string ChangJia){Console.WriteLine("我是買書的是:{0}來自{1}",BookName,ChangJia);}
Func的用法
static void Main(string[] args){Func<string> RetBook = new Func<string>(FuncBook);Console.WriteLine(RetBook);}public static string FuncBook(){return "送書來了";}
2:有參數(shù)有返回值的方法
static void Main(string[] args){Func<string,string> RetBook = new Func<string,string>(FuncBook);Console.WriteLine(RetBook("aaa"));}public static string FuncBook(string BookName){return BookName;}
3:Func一個(gè)很重要的用處就是傳遞值,下面我舉一個(gè)簡單的代碼來說明
Func<string> funcValue = delegate{return "我是即將傳遞的值3";};DisPlayValue(funcValue);
注釋1:DisplayVaue是處理傳來的值,比喻緩存的處理,或者統(tǒng)一添加數(shù)據(jù)庫等
private static void DisPlayValue(Func<string> func){string RetFunc = func();Console.WriteLine("我在測試一下傳過來值:{0}",RetFunc);}
總結(jié)
【推薦】.NET Core開發(fā)實(shí)戰(zhàn)視頻課程 ★★★
.NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門篇-開篇及總體規(guī)劃
【.NET Core微服務(wù)實(shí)戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引
Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)
.NET Core中的一個(gè)接口多種實(shí)現(xiàn)的依賴注入與動(dòng)態(tài)選擇看這篇就夠了
10個(gè)小技巧助您寫出高性能的ASP.NET Core代碼
用abp vNext快速開發(fā)Quartz.NET定時(shí)任務(wù)管理界面
在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實(shí)現(xiàn)作業(yè)調(diào)度
現(xiàn)身說法:實(shí)際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化
評論
圖片
表情
