C# action,delegate,func的用法和区别

private delegate void BuyBook();
public static void Book(){Console.WriteLine("我是提供书籍的");}
 BuyBook buybook = new BuyBook(Book);4:小明给钱拿书(触发)
buybook();Action的用法
Action BookAction = new Action(Book);BookAction();
static void Main(string[] args){Action<string> BookAction = new Action<string>(Book);BookAction("百年孤独");}public static void Book(string BookName){Console.WriteLine("我是买书的是:{0}",BookName);}
3:现在小明又改变主意了,我不仅要自己选择书籍,我还要在一个牛逼的书籍厂家买,有没有这种方式呢,那么告诉你有,Action<in T1,in T2>
static void Main(string[] args){Action<string,string> BookAction = new Action<string,string>(Book);BookAction("百年孤独","北京大书店");}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:有参数有返回值的方法
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一个很重要的用处就是传递值,下面我举一个简单的代码来说明
Func<string> funcValue = delegate{return "我是即将传递的值3";};DisPlayValue(funcValue);
注释1:DisplayVaue是处理传来的值,比喻缓存的处理,或者统一添加数据库等
private static void DisPlayValue(Func<string> func){string RetFunc = func();Console.WriteLine("我在测试一下传过来值:{0}",RetFunc);}
总结
.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
【.NET Core微服务实战-统一身份认证】开篇及目录索引
Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南)
.NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
用abp vNext快速开发Quartz.NET定时任务管理界面
评论
