格码拓普是一个专注于教育管理类、现场比赛展示类、智能办公类平台应用的研发团队。该团队采用了知识管理理念,已凝聚成一个"格调高远、码力十足"的组织。
Action 及Func是平台内置的两个委托。掌握它的应用方式,至关重要。 NetCore开发师
1.普通用法
using System; namespace DelegateDemo { public class Secretary { public void BuyAirlineTicketAndBookHotel(int count,int star) { Console.WriteLine("购买{0}张飞机票,订{1}星级酒店。", count,star); } public static string BuyTripBag(string name) { Console.WriteLine("购买{0}牌旅行包。", name); return "购包成功!"; } } class Program { static void Main(string[] args) { Secretary sec = new Secretary(); Action<int,int> ctripAction = new Action<int,int>(sec.BuyAirlineTicketAndBookHotel); Func<string, string> taobaoFun = new Func<string, string>(Secretary.BuyTripBag); //方法1: //ctripAction(2,5); //Console.WriteLine(taobaoFun("航天")); //方法2: //ctripAction.Invoke(2, 5); //Console.WriteLine(taobaoFun.Invoke("航天")); //方法3: ctripAction?.Invoke(2, 5); Console.WriteLine(taobaoFun?.Invoke("航天")); } } }
2.回调用法
using System; namespace DelegateDemo { public class MathOp { public void Add(int x, int y, Action<int> call) { if (call != null) { call(x + y); } } public void Add(int x, int y, Func<int,int> call) { if (call != null) { Console.WriteLine("结果是:{0}", call(x + y)); } } } class Program { static void Main(string[] args) { MathOp mathOp = new MathOp(); mathOp.Add(1, 2, CallPrint); mathOp.Add(10,20,CallReturn); Console.ReadKey(); } private static void CallPrint(int res) { Console.WriteLine("结果是:" + res); } private static int CallReturn(int res) { return res; } } }
良好的沟通,是成功的一半
博客评论功能已关闭